Вы можете обернуть InputStream в ZipInputStream, то есть:
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(filePath);
if (is == null) {
throw new FileNotFoundException(" Not found: " + filePath);
}
ZipInputStream zis = new ZipInputStream(is);
EDIT:
Используйте метод, названный выше как fileReaderZipAsResource, я обычно читаю файл:
try {
BufferedReader br = fileReaderZipAsResource(qaFilePath);
String line;
while ((line = br.readLine()) != null) {
if (line.isEmpty()) {
throw new RuntimeException("Invalid entry ... 2");
}
line = line.trim();
textKGKB.add(line);
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
Но отладка показывает, что программа не входит в цикл. Он просто проходит по циклу и продолжает логику, не вызывая исключения. Мой текстовый файл представляет собой текстовый файл с 4 столбцами, разделенный клавишей табуляции. Я просто заархивирую его и назову xyy.zip, и передам его в качестве параметра вышеописанному методу.
В чем проблема? Действительно ли работает упаковка ZipInputStream?