java - 为什么我的 Java while 循环迭代了一半

标签 java loops for-loop

//some code here
    String x;
    while ((x = inputStream.readLine()) != null) {
        System.out.println(inputStream.readLine());
    }
    inputStream.close();
}

你好,我是 Java 初学者,我的 while 循环应该给出类似的输出
aaasd1
aaasd2
aaasd3
aaasd4
aaasd5
aaasd6
但它给出了
aaasd2
aaasd4
aaasd6

当我将 println 更改为 System.out.println(x); 时它提供了应有的输出。有谁知道是什么问题。感谢您的帮助

最佳答案

每次调用 inputStream.readLine() 时,您都会读取一行并将文件指针前进到下一行,并且由于您执行了两次,一次在 while 循环 header 中,一次在打印时,则仅每隔一行打印一次。改为打印 x

String x;
while ((x = inputStream.readLine()) != null) {
    System.out.println(x);
}
inputStream.close();

关于java - 为什么我的 Java while 循环迭代了一半,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54846573/

相关文章:

java - 查找句子中的元音和辅音的程序

java - 是否可以从您的 C++ 和 Java 代码调用 OpenGL ES?

java - Spring MVC 不能 Autowiring 集合?

javascript - 返回的数组打印数组索引而不是值

javascript - 无法记录父 for 循环的值

c++ - 我的 If Else 语句无法提供 vector 中的最大值 (C++)

java - 每次登录我的 Spring Boot 项目时都会重定向到错误页面

c - C/C++ 中的循环限制

java - 为什么使用 find() 和 ""作为模式时匹配器会永远循环?

c - 我的程序有几个错误,我不知道如何修复它们