Java 处理SealeObject时发生EOFEException运行时错误

Java 处理SealeObject时发生EOFEException运行时错误,java,objectinputstream,eofexception,Java,Objectinputstream,Eofexception,我目前正在试验对象的加密和解密,但每次声明读取方法时,我都会遇到一个EOFEException。我觉得我的代码中有很多冗余,试图处理所有的异常,所以如果你能告诉我要删除哪些catch/throw短语,以及我如何解决这个问题,那就太好了。谢谢 java.io.EOFException指向代码中带(****)的行。所有其他行都是NetBeans生成的代码 public static void readFromBinary() throws IllegalBlockSizeException, EOF

我目前正在试验对象的加密和解密,但每次声明读取方法时,我都会遇到一个EOFEException。我觉得我的代码中有很多冗余,试图处理所有的异常,所以如果你能告诉我要删除哪些catch/throw短语,以及我如何解决这个问题,那就太好了。谢谢

java.io.EOFException指向代码中带(****)的行。所有其他行都是NetBeans生成的代码

public static void readFromBinary() throws IllegalBlockSizeException, EOFException
{
try {
    BufferedReader br3 = new BufferedReader(new FileReader(noteFileName));     
    if (br3.readLine() != null) {
        FileInputStream fINoteStream = new FileInputStream(noteFileName);
        ObjectInputStream oINoteStream = new ObjectInputStream(fINoteStream);
        while(true){
        try{
        **SealedObject sObj = (SealedObject)oINoteStream.readObject();**
        Note note = (Note) sObj.getObject(new NullCipher());
        noteList.add(note);
        }
        catch(EOFException e){
            e.printStackTrace();
            break;
        }
        catch (IllegalBlockSizeException e){
            e.printStackTrace();
            break;
        }
        catch (BadPaddingException e){
            e.printStackTrace();
            break;
        }
        catch (ClassNotFoundException e){
            e.printStackTrace();
            break;
        }
        }
        oINoteStream.close();
    }
}
catch (FileNotFoundException e){
    e.printStackTrace();
}
catch (IOException e){
    e.printStackTrace();
} 
}
}
另一个类中的方法调用:

try{
        DataStorage.readFromBinary();
        }
        catch (IllegalBlockSizeException e)
        {
            e.printStackTrace();
        }
        catch (EOFException e)
        {
            e.printStackTrace();
        }

EOFException
只意味着输入结束。您需要关闭inout并中断循环。您不需要打印堆栈跟踪。它与
SealedObject
没有任何关系,只与对象流的工作方式有关

您需要决定是捕获此异常还是抛出它。你不应该同时做这两件事。

可能重复的