我需要能够访问存储在已编译的jar文件中的文件.我已经想出了如何将文件添加到项目中,但是如何在代码中引用它?我如何将文件从jar文件复制到用户硬盘上的某个位置?我知道有很多方法可以访问文件(FileInputStream,FileReader等),但我不知道如何查看自己.
typ*_*.pl 23
你可以使用这样的东西:
InputStream is = this.getClass().getClassLoader().getResourceAsStream(fileFromJarFile);
如果foo.txt位于JAR文件的根目录中,则使用:
InputStream is = this.getClass().getClassLoader().getResourceAsStream("foo.txt");
假设该类与资源位于同一个JAR文件中,我相信.
您可以使用getResource()获取类路径上文件的URL,或者使用getResourceAsStream()获取InputStream。
例如:
BufferedReader reader = new BufferedReader(new InputStreamReader(
this.getClass().getResourceAsStream("foo.txt")));
Run Code Online (Sandbox Code Playgroud)
您可以使用JarFile类读取 JAR 文件的内容。
下面是如何从 JAR 文件中获取特定文件并将其解压缩的示例:
JarFile jar = new JarFile("foo.jar");
String file = "file.txt";
JarEntry entry = jar.getEntry(file);
InputStream input = jar.getInputStream(entry);
OutputStream output = new FileOutputStream(file);
try {
byte[] buffer = new byte[input.available()];
for (int i = 0; i != -1; i = input.read(buffer)) {
output.write(buffer, 0, i);
}
} finally {
jar.close();
input.close();
output.close();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28349 次 |
| 最近记录: |