Что-то не так с GZIPInputStream
или GZIPOutputStream
. Просто прочитайте следующий код (или запустите его и посмотрите, что произойдет):
def main(a: Array[String]) {
val name = "test.dat"
new GZIPOutputStream(new FileOutputStream(name)).write(10)
println(new GZIPInputStream(new FileInputStream(name)).read())
}
Создает файл test.dat
, записывает однобайтное 10
форматирование по GZIP и считывает байт в том же файле в том же формате.
И вот что я получил от него:
Exception in thread "main" java.io.EOFException: Unexpected end of ZLIB input stream
at java.util.zip.InflaterInputStream.fill(Unknown Source)
at java.util.zip.InflaterInputStream.read(Unknown Source)
at java.util.zip.GZIPInputStream.read(Unknown Source)
at java.util.zip.InflaterInputStream.read(Unknown Source)
at nbt.Test$.main(Test.scala:13)
at nbt.Test.main(Test.scala)
По какой-то причине линия чтения кажется неправильной.
Я искал ошибку Unexpected end of ZLIB input stream
и нашел некоторые отчеты об ошибках для Oracle, выпущенные в 2007-2010 годах. Таким образом, я думаю, ошибка все еще остается в некотором роде, но я не уверен, что мой код прав, поэтому позвольте мне опубликовать это здесь и послушать ваши советы. Спасибо!