当前位置: 首页 > 面试题库 >

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

屠晟睿
2023-03-14
问题内容

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

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){
}

问题答案:

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

与其循环直到抛出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;
    }
}


 类似资料:
  • 问题内容: 我有这段代码。我想回到循环的起点,并再次要求用户输入。但是,它总是循环而不停止请求输入。我的代码有什么问题?谢谢 问题答案: 从http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextInt%28int%29: “如果翻译成功,则扫描程序将前进经过匹配的输入。” 啊,但是如果翻译是什么 不是 成功的?在这种

  • 我的程序中有两个while循环。第一个是针对游戏菜单的,第二个是针对实际游戏的。如果“Gameover-Event”发生,我想返回菜单。我不知道该怎么做。

  • 主要内容:while 语句,do-while 语句,while和do-while的比较循环是程序中的重要流程结构之一。循环语句能够使程序代码重复执行,适用于需要重复一段代码直到满足特定条件为止的情况。 所有流行的编程语言中都有循环语句。 Java 中采用的循环语句与C语言中的循环语句相似,主要有 while、do-while 和 for。另外 Java 5 之后推出了 for-each 循环语句,for-each 循环是 for 循环的变形,它是专门为集合遍历而设计的。for-ea

  • 问题内容: 有没有办法知道在Java中执行一个循环要花多少秒? 例如: 它不必精确到100%,而只是想知道要花费多长时间。里面的算法是一种写入.txt文件的密钥生成器。我希望它花费几分钟,因此对于我的第一次测试,我想计算秒数。 问题答案: 用Java编写微基准测试时需要非常小心。例如: 如果JIT编译器可以弄清楚循环体不影响代码结果,则可以对其进行优化。例如: 可能很快就会“运行”。 JIT编译后

  • 问题内容: 嗨,我正在使用for循环和异步ajax调用为本地存储创建批处理更新。 我的问题是,即使我的ajax调用仍未成功完成,我的循环仍会继续。 在继续循环之前,我们如何设法使循环等待单元响应ajax响应? 任何帮助表示赞赏。谢谢!!! 下面是我的示例代码: 问题答案: 请不要使用“ for循环”。而是在成功回调中增加计数器并重新触发自身。像下面这样。

  • 问题内容: 我想知道是否有任何内置方法可以继续进行python外循环中的下一次迭代。例如,考虑以下代码: 我希望此继续语句退出jj循环并转到ii循环中的下一项。我可以通过其他方式(通过设置标志变量)来实现此逻辑,但是有一种简单的方法可以做到这一点,还是像要求太多? 问题答案: 在一般情况下,当您有多个循环级别且对您不起作用时(因为您要继续上一个循环,而不是当前循环的右上循环),可以执行以下操作之一