Coś jest nie tak z GZIPInputStream
lub GZIPOutputStream
. Tylko proszę przeczytać następujący kod (lub uruchomić go i zobaczyć, co się dzieje):Wyjątek: nieoczekiwany koniec strumienia wejściowego ZLIB
def main(a: Array[String]) {
val name = "test.dat"
new GZIPOutputStream(new FileOutputStream(name)).write(10)
println(new GZIPInputStream(new FileInputStream(name)).read())
}
Tworzy plik test.dat
, pisze jeden bajt 10
formatowanie przez GZIP i odczytać bajt w tym samym pliku w tym samym formacie .
A to co mam działa to:
liniaException 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)
Odczyt wydaje się dzieje w niewłaściwy sposób z jakiegoś powodu.
Wylogowałem się pod błędem Unexpected end of ZLIB input stream
i znalazłem kilka raportów o błędach dla Oracle, które zostały wydane około 2007-2010. Domyślam się, że błąd nadal pozostaje w jakimś sensie, ale nie jestem pewien, czy mój kod jest właściwy, więc pozwól mi napisać to tutaj i wysłuchać twojej rady. Dziękuję Ci!
* „Coś jest nie tak z GZIPInputStream lub GZIPOutputStream.” * - Wrong diagnoza. Prawdopodobieństwo, że prawdziwy problem nie występuje w tych klasach, wynosi 99,99%. –
W rzeczywistości 100%. Zobacz moją odpowiedź. –