При работе с GZIPInputStream я заметил, что использование InputStream, сгенерированного из Class.class.getResourceAsStream для файла gzipped, вызывает
java.util.zip.ZipException: invalid code lengths set
при использовании в GZIPInputStream, но использование FileInputStream в том же файле, кажется,отлично работаетКто-нибудь знает, что вызывает это?
Например:
InputStream is = new FileInputStream("src/main/resources/testFile.gz");
GZIPInputStream zis = new GZIPInputStream(is);
String outputStr = IOUtils.toString(zis, "utf-8");
Успешно генерирует выходную строку с данными разархивированного файла, в то время как:
InputStream is = Class.class.getResourceAsStream("/testFile.gz");
GZIPInputStream zis = new GZIPInputStream(is);
String outputStr = IOUtils.toString(zis, "utf-8");
ГенерируетВыше ZipException.
Я, разархивировав файл, могу получить правильный outputString, используя IOUtils.toString для InputStream, сгенерированного любым способом, поэтому я знаю, что к файлу обращаются успешно и проблема возникаетбыть с GZIPInputStream сам по себе.