访问 jar 文件中的文件?
我需要能够访问存储在已编译的jar文件中的文件。我已经弄清楚了如何将文件添加到项目中,但是如何在代码中引用它?如何将文件从 jar 文件复制到用户硬盘驱动器上的某个位置?我知道有几十种方法可以访问文件(FileInputStream,FileReader等),但我不知道如何查看内部。
我需要能够访问存储在已编译的jar文件中的文件。我已经弄清楚了如何将文件添加到项目中,但是如何在代码中引用它?如何将文件从 jar 文件复制到用户硬盘驱动器上的某个位置?我知道有几十种方法可以访问文件(FileInputStream,FileReader等),但我不知道如何查看内部。
你可以使用类似这样的东西:
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")));