在命令行中从输入文件中读取

zen*_*ngr 1 java input

这次我有一个非常蹩脚的问题,这个问题很完美,但现在却不是:

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

        while (br.readLine() != null) {
            System.out.println(br.readLine());
        }
Run Code Online (Sandbox Code Playgroud)

输入文件:

1
2
3
4
5
6
7
8
9
Run Code Online (Sandbox Code Playgroud)

在命令行中:$ java myprogram <inputfile

上面编写的代码的结果是:

    2
    4
    6
    8
null
Run Code Online (Sandbox Code Playgroud)

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

我哪里错了?!

eri*_*son 7

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

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

while (true) {
  String line = br.readLine();
  if (line == null)
    break;
  System.out.println(line);
}
Run Code Online (Sandbox Code Playgroud)