java - 在命令行中读取输入文件

标签 java input

这次我遇到了一个非常蹩脚的问题,它工作得很好,但现在不行了:

        BufferedReader br = new BufferedReader(new InputStreamReader(
                System.in));

        while (br.readLine() != null) {
            System.out.println(br.readLine());
        }

输入文件:

1
2
3
4
5
6
7
8
9

在命令行中:$java myprogram < inputfile

上面写代码的结果是:

    2
    4
    6
    8
null

但预期的输出应该与输入文件相同!

我哪里错了?!

最佳答案

您不应该在每个循环中调用两次 readLine()

每次调用它时,它都会读取一个新行。打印每次调用的结果:

while (true) {
  String line = br.readLine();
  if (line == null)
    break;
  System.out.println(line);
}

关于java - 在命令行中读取输入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1970141/

相关文章:

javascript - 将 gettime 保存到表单字段

java - 为什么异步网络调用的回调方法在Activity结束时不会造成内存泄漏?

java - 动态添加fasterxml注解?

javascript - 使用 % 符号存储电子邮件时出现问题

c - 全行输入的极度麻烦。 C程序设计语言

javascript - Select2 从输入字段开始而不是下拉列表

java - jpcap.packet.Packet 无法转换为 jpcap.packet.TCPPacket

java - Java 中对象的自定义字符串表示

javascript - 使用Javascript将fontWeight的CSS属性应用于单选按钮的标签标签

javascript - 如何在javascript中从左到右从字符串序列中选择数字整数