报了一个java.io.EOFException 的错误,怎么解决啊?
Causedby:java.io.EOFExceptionatcom.lowagie.text.pdf.RandomAccessFileOrArray.readFully...
Caused by: java.io.EOFException
at com.lowagie.text.pdf.RandomAccessFileOrArray.readFully(Unknown Source)
at com.lowagie.text.pdf.RandomAccessFileOrArray.readFully(Unknown Source)
at com.lowagie.text.pdf.PdfReader.getStreamBytesRaw(Unknown Source)
at com.lowagie.text.pdf.PdfReader.getStreamBytesRaw(Unknown Source)
at com.lowagie.text.pdf.PdfStamperImp.close(Unknown Source)
at com.lowagie.text.pdf.PdfStamper.close(Unknown Source)
at cn.myapps.util.custom.WaterPress.loadPdf(WaterPress.java:83)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:155)
... 175 more 展开
at com.lowagie.text.pdf.RandomAccessFileOrArray.readFully(Unknown Source)
at com.lowagie.text.pdf.RandomAccessFileOrArray.readFully(Unknown Source)
at com.lowagie.text.pdf.PdfReader.getStreamBytesRaw(Unknown Source)
at com.lowagie.text.pdf.PdfReader.getStreamBytesRaw(Unknown Source)
at com.lowagie.text.pdf.PdfStamperImp.close(Unknown Source)
at com.lowagie.text.pdf.PdfStamper.close(Unknown Source)
at cn.myapps.util.custom.WaterPress.loadPdf(WaterPress.java:83)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:155)
... 175 more 展开
2个回答
展开全部
1,内部类BlockDataInputStream.的方法peekByte抛出的异常,意思就是到达了文件的末尾,程序却没有正常结束读取文件内容,你可以单步调试一下看看到达文件末尾之后程序为什么没有停下来
2,从异常来看,你是不是使用了一个内部类BlockDataInputStream?错误就在BlockDataInputStream.peekByte()方法.
java.io.EOFException:当输入过程中意外到达文件或流的末尾时,抛出此异常。
此异常主要被数据输入流用来表明到达流的末尾。
3,我解决过这个问题。
writeObject可以写n个,但是readObject()却只能读一次,你做一下测试。
如果你需要序列化好几个类的话,建议你用json;或者自己写两个方法,一个是将对象转换为字符串,一个是将字符串反转为对象。
这样可以轻松解决问题。
4,这个错误我遇到过,大概的产生异常的原因是:用输入输出流来操作一个文件,你用的是readObject()和writeObject()方法来进行对象的序列化和反序列化,当你在反序列化(读入对象)的时候,文件中没有那么多的对象来让你读取.所以就跑出这个异常,就好比,你还没write就先read
2,从异常来看,你是不是使用了一个内部类BlockDataInputStream?错误就在BlockDataInputStream.peekByte()方法.
java.io.EOFException:当输入过程中意外到达文件或流的末尾时,抛出此异常。
此异常主要被数据输入流用来表明到达流的末尾。
3,我解决过这个问题。
writeObject可以写n个,但是readObject()却只能读一次,你做一下测试。
如果你需要序列化好几个类的话,建议你用json;或者自己写两个方法,一个是将对象转换为字符串,一个是将字符串反转为对象。
这样可以轻松解决问题。
4,这个错误我遇到过,大概的产生异常的原因是:用输入输出流来操作一个文件,你用的是readObject()和writeObject()方法来进行对象的序列化和反序列化,当你在反序列化(读入对象)的时候,文件中没有那么多的对象来让你读取.所以就跑出这个异常,就好比,你还没write就先read
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询