java - 关于BufferedReader中readLine读取最后一行的问题
巴扎黑
巴扎黑 2017-04-17 14:59:34
0
2
2051

public static void main(String[] args) throws Exception{

    BufferedReader in = new BufferedReader(new FileReader("Test3.txt"));
    String line =null;
    while((line=in.readLine())!=null)
    {
        System.out.println(line);
    }
}

想问一下通过readLine方法读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行,但是在最后一行的时候并没有换行或者回车的字符啊,此时为什么会读取到最后一行呢?按理说最后一行是不应该被读取到的。求解!

巴扎黑
巴扎黑

全員に返信(2)
Peter_Zhu

BufferedReader には、次のように、ストリームの終わりに達したかどうかを判断するために使用されるプライベート メソッドがあります。

  • @バッファに読み取られた文字の数を返します。ソース ストリームの終わりに達した場合は -1 を返します。

リーリー

readLine() には次のような段落があります:

リーリー
いいねを押す +0
Ty80

これについては、BufferedReader のソース コードを参照してください。実際、別の状況があります。つまり、ファイルの終わり (つまり最後の行) が読み取られた場合、次のような場合でもこの行が返されます。 nとrはありません。

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート