我想知道使用readUTF()/ readInt()/ etc时是否可以检测二进制文件的结尾。函数(DataInputStream方法)。这是代码

    try(DataInputStream reader = new DataInputStream(new BufferedInputStream(new FileInputStream("file.dat")))){
        String input;
        while((input = br.readUTF()) != null){ //something like that
            //some code
        }
    }catch(IOException error){
        //handling exception
    }


如果不是,对于这种情况推荐的解决方案是什么?谢谢你的帮助!

最佳答案

基于文档中的readUTF,我看不到一种优雅的方式,也许您可​​以读到直到EOFException像这样:

    while(true){
        try{
            input = reader.readUTF();
        }
        catch(EOFException e) {
            //....
        }
    }

09-30 20:55