我是Java的新手,希望学习如何使用GZIPstreams。我已经尝试过以下操作:
ArrayList<SubImage>myObject = new ArrayList<SubImage>(); // SubImage is a Serializable class
ObjectOutputStream compressedOutput = new ObjectOutputStream(
new BufferedOutputStream(new GZIPOutputStream(new FileOutputStream(
new File("....")))));
compressedOutput.writeObject(myObject);
并且
ObjectInputStream compressedInput = new ObjectInputStream(
new BufferedInputStream(new GZIPInputStream(new FileInputStream(
new File("....")))));
myObject=(ArrayList<SubImage>)compressedInput.readObject();
当程序将
myObject
写入文件时没有抛出任何异常,但当它到达以下行时:myObject=(ArrayList<SubImage>)compressedInput.readObject();
它抛出了这个异常:
Exception in thread "main" java.io.EOFException: Unexpected end of ZLIB input stream
我该如何解决这个问题?