có thể lấy đối tượng Tệp hoặc URI cho tệp trong một tệp lưu trữ bằng Java không? (kho lưu trữ zip hoặc jar)Nhận đối tượng Tệp hoặc URI cho tệp trong một tệp lưu trữ với Java?
Cảm ơn Hemeroc.
có thể lấy đối tượng Tệp hoặc URI cho tệp trong một tệp lưu trữ bằng Java không? (kho lưu trữ zip hoặc jar)Nhận đối tượng Tệp hoặc URI cho tệp trong một tệp lưu trữ với Java?
Cảm ơn Hemeroc.
Giao thức jar:
là một cách để xây dựng một URI tới tài nguyên trong một kho lưu trữ JAR:
jar:http://www.example.com/bar/baz.jar!/path/to/file
Xem các tài liệu API cho JarURLConnection: http://java.sun.com/javase/6/docs/api/java/net/JarURLConnection.html
Giữa jar:
và !/
thể được bất kỳ URL , bao gồm URL file:
.
Để biết dữ liệu tệp thực tế, hãy xem ZipFile#getInputStream(ZipEntry). Các javadocs cho lớp đó giải thích cách nó được sử dụng.
public List<File> getFilesInJar(String jarName){
List<File> result = new ArrayList<File>();
File jarFile = new File(jarName);
JarInputStream jarFile = new JarInputStream(new FileInputStream(jarFile));
JarEntry jarEntry;
while ((jarEntry = jarFile.getNextJarEntry()) != null) {
result.add(inputStreamToFile(jarFile.getInputStream(jarEntry)));
}
return result;
}
cho phương pháp inputStreamToFile, google "java InputStream vào tập tin", mặc dù bạn có thể hài lòng với một đối tượng InputStream cũng có, thay vì một đối tượng tập tin :)