Java 当最后一行不包含新行字符时,从Std输入读取最后一行

Java 当最后一行不包含新行字符时,从Std输入读取最后一行,java,Java,我知道这是一个非常基本的问题,但不知怎么的,我没办法弄明白 我有一个类似于这样的输入: line1 line2 line3 line4 除第4行外,所有行的末尾都有一个新行字符,即除第4行外,我在每行后面都按了ENTER键。现在,如果我将其作为输入提供给BufferedReader,它将只读取前3行并跳过最后一行 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line; whil

我知道这是一个非常基本的问题,但不知怎么的,我没办法弄明白

我有一个类似于这样的输入:

line1
line2
line3
line4
除第4行外,所有行的末尾都有一个新行字符,即除第4行外,我在每行后面都按了ENTER键。现在,如果我将其作为输入提供给BufferedReader,它将只读取前3行并跳过最后一行

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line;
while((line=br.readLine())!=null){  
    System.out.println(line);
}
这就是我试图使用的代码。我认为代码没有任何问题,最后一行没有新行导致问题

有人能帮我吗。

来自:

读一行文字。一条线路被视为由任何一条线路终止 换行符('\n')、回车符('\r')或回车符的 紧接着是换行符

也就是说,如果你想“读”一行,它必须有上面提到的其中一个字符。

来自:

读一行文字。一条线路被视为由任何一条线路终止 换行符('\n')、回车符('\r')或回车符的 紧接着是换行符


也就是说,如果你想“读”一行,它必须有上面提到的其中一个字符。

readLine()
顾名思义,读一行。在您按enter键之前没有任何行(程序如何知道您不会按更多键?)。。。那么如何应对这种情况呢。。。那么我们决不能读最后一行。。我正在将整个内容复制到程序的输入端,程序在不允许我按ENTER键的情况下开始运行。在您的示例中,输入“line4”后,您如何向程序指示您已完成键入?
readLine()
顾名思义,读取一行。在您按enter键之前没有任何行(程序如何知道您不会按更多键?)。。。那么如何应对这种情况呢。。。那么我们决不能读最后一行。。我将整个内容复制到程序的输入端,程序开始运行时不允许我按ENTER键。在您的示例中,输入“line4”后,您如何向程序指示您已完成键入?