Tôi có tệp jar, chứa nhiều thư mục khác nhau như hình ảnh, phông chữ, thư, v.v ... Tôi phải đọc tất cả các tệp trong thư mục phông chữ.Đọc tệp từ thư mục bên trong tệp jar
Hiện tại mã java của tôi đang lặp qua tất cả các nội dung trong tệp jar. Mã của tôi là như sau:
private void loadApplicationSpecificFonts() {
try{
JarFile jarFile = new JarFile("owenstyle-jar-config.jar");
JarEntry entry;
String fontName;
for(Enumeration em = jarFile.entries(); em.hasMoreElements();) {
String s= em.nextElement().toString();
if(s.endsWith("ttf")){
fontName= s.substring(s.lastIndexOf("/")+1);
fontName= fontName.substring(0, fontName.indexOf(".ttf"));
entry = jarFile.getJarEntry(s);
InputStream input = jarFile.getInputStream(entry);
Font font= Font.createFont(Font.TRUETYPE_FONT, input);
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(font);
input.close();
}
}
jarFile.close();
}catch (IOException e){
System.err.println("Error: " + e.getMessage());
}catch (FontFormatException e){
System.err.println("Error: " + e.getMessage());
}
}
Có một cách mà tôi có thể cung cấp cho các đường dẫn của thư mục phông chữ (congig-jar \ config \ tài sản \ fonts), chứ không phải đi qua qua tất cả các nội dung trong jar . Tôi biết đường dẫn của thư mục phông chữ là cố định, vì vậy tôi không muốn các chi phí của travesring thông qua tất cả các thư mục trong jar.
Có thể đoạn mã này hoạt động? 'JarEntry entry = getJarEntry (" congig-jar \ config \ assets \ fonts ");' 'InputStream input = jarFile.getInputStream (mục nhập);' –
Ai tạo ra (làm) Jar? Nếu đó là bạn, nó sẽ có ý nghĩa để đưa một danh sách các tập tin bao gồm trong một vị trí được biết đến trong Jar. VÍ DỤ. 'fonts/all.list'. Lấy tài nguyên đó, đọc nó, và bạn có danh sách các tên mục nhập phông chữ. –
Andrew- Tập tin jar không được tạo bởi tôi. Nó được assmebled và gửi, và tôi phải đọc các tập tin font bên trong thư mục font của tôi trong jar – nishMaria