我的情况是我有一个包含一些文件(txt,png,...)的zip文件,我想直接用它们的名字来读它,我测试了下面的代码但没有结果(NullPointerExcepion):
InputStream in = Main.class.getResourceAsStream("/resouces/zipfile/test.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8"));
Run Code Online (Sandbox Code Playgroud)
resources是一个包,zipfile是一个zip文件.
Mar*_*lis 15
如果您可以确定您的zip文件永远不会被打包到另一个jar中,您可以使用以下内容:
URL zipUrl = Main.class.getResource("/resources/zipfile.zip");
URL entryUrl = new URL("jar:" + zipUrl + "!/test.txt");
InputStream is = entryUrl.openStream();
Run Code Online (Sandbox Code Playgroud)
要么:
URL zipUrl = Main.class.getResource("/resources/zipfile.zip");
File zipFile = new File(zipUrl.toURI());
ZipFile zip = new ZipFile(zipFile);
InputStream is = zip.getInputStream(zip.getEntry("test.txt"));
Run Code Online (Sandbox Code Playgroud)
否则,您的选择是: