【发布时间】:2017-08-19 14:51:59
【问题描述】:
我有一个 zip 文件(在一个 jar 文件中),我想在 init 中读取它。 我知道我可以使用 getResourceAsStream(...) 轻松读取 txt 文件,避免出现“URI 不分层”错误。 但现在确定我将如何为 zip 文件执行此操作。
以下是我的代码,但是当我将代码导出到可运行的 jar 并运行它时,它会抛出“URI 不是分层错误”。
URL fileLocation = ChemicalSynonyms.class.getClassLoader().getResource("sciome/workbench/resources/chemicalSynonym/" + strFileName);
File file = new File(fileLocation.toURI());
// it is a zip file
ZipFile zipFile = new ZipFile(file);
Enumeration<? extends ZipEntry> entries = zipFile.entries();
ZipEntry entry = entries.nextElement();
InputStream is = zipFile.getInputStream(entry);
BufferedReader buf = new BufferedReader(new InputStreamReader(is));
String lineJustFetched = null;
String[] wordsArray;
// read each line
lineJustFetched = buf.readLine();
【问题讨论】:
-
哪一行报错了?
-
第一行。我知道对于 txt 文件,它应该是 getresourceasstream 而不是 getresource,但不知道我将如何处理 zip 文件
-
您不能加载资源文件流并将其附加到 ZipFile 类吗?或者也许在文件系统中制作临时文件然后加载。
标签: java