try {
FileInputStream fis = new FileInputStream(f);
Log.d("Objects remaining; ", fis.available()+"");
ObjectInputStream ois = new ObjectInputStream(fis);
Log.d("Objects remaining; ", fis.available() + "");
Question question = (Question) ois.readObject();
Log.d("FIS:",fis.toString());
Log.d("OIS:",ois.toString());
} catch (Exception e){
e.printStackTrace();
}
}
我不知道如何处理代码中给定的异常。
11-06 12:49:52.879 27005-27005/com.example.android.fileio D/Objects remaining;﹕ 4
11-06 12:49:52.880 27005-27005/com.example.android.fileio D/Objects remaining;﹕ 0
11-06 12:49:52.880 27005-27005/com.example.android.fileio W/System.err﹕ java.io.EOFException
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at java.io.DataInputStream.readByte(DataInputStream.java:77)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at java.io.ObjectInputStream.nextTC(ObjectInputStream.java:505)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:752)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1983)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1940)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at com.example.android.fileio.MainActivity.makeFile(MainActivity.java:71)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at java.lang.reflect.Method.invoke(Native Method)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:372)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at android.support.v7.internal.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:273)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at android.view.View.performClick(View.java:4756)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at android.view.View$PerformClick.run(View.java:19748)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at android.os.Handler.handleCallback(Handler.java:739)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:95)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at android.os.Looper.loop(Looper.java:135)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5254)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at java.lang.reflect.Method.invoke(Native Method)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:372)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
11-06 12:49:52.881 27005-27005/com.example.android.fileio W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
最佳答案
流上有 4 个字节可用。您的序列化 Question
对象可能会大于四个字节。我认为这会产生EOFException
。您已通过打印堆栈跟踪来处理异常。您确定该文件包含您所期望的内容吗?
关于java - 如何处理我给定代码中的 EOF 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33561494/