微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java,需要一个while循环才能达到eof!同时,继续解析

如何解决Java,需要一个while循环才能达到eof!同时,继续解析

:此答案不正确。请参阅注释以获取解释。


与其循环直到抛出EOFException,不如使用更干净的方法并使用available()

DataInputStream dis = new DataInputStream(new FileInputStream(inFile));
while (dis.available() > 0) {
    // read and use data
}

另外,如果您选择采用EOF方法,则希望在捕获到异常时设置一个布尔值,并在循环中使用该布尔值,但是我不建议这样做:

DataInputStream dis = new DataInputStream(new FileInputStream(inFile));
boolean eof = false;
while (!eof) {
    try {
        // read and use data
    } catch (EOFException e) {
        eof = true;
    }
}

解决方法

我目前有一个正常工作的解析器。它解析一次文件(不是我想要的功能),然后将解析的数据输出到文件中。我需要它来继续解析并追加到相同的输出文件,直到输入文件的末尾。看起来像这样。

try {
// my code parsing the data and appending to eof of output. (works)
}
catch (EOFException eof){
}

除了while循环,其他所有操作都已完成。当我需要它继续解析时,它只会解析一次。我正在寻找一个while循环函数来达到eof。

我也在使用DataInputStream。是否有某种DataInputStream.hasNext函数?

DataInputStream dis = new DataInputStream(new FileInputStream(inFile));
i.e. dis.read();

//Need a while !eof while loop
try {
// my code parsing the data and appending to eof of output. (works)
}
catch (EOFException eof){
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。