簡體   English   中英

使用BufferedReader和Scanner讀取文本文件

[英]Reading a text file using BufferedReader and Scanner

我需要讀取文本文件的前n行作為行(每行可能包含或不包含空格)。 文本文件的其余部分包含未知數量N的以空格分隔的標記(分隔符是空格,制表符和換行符的混合,所有這些都被視為與分隔符完全相同)。

我知道如何使用BufferedReader讀取行。 我知道如何使用Scanner讀取令牌。 但是,如何以上述方式將這兩種不同的閱讀模式組合成單個文本文件?

您可以使用Scanner執行這兩項任務。 請參閱Scanner.nextLine方法。

如果你真的需要同時使用BufferedReaderScanner你可以這樣做:

byte[] inputBytes = "line 1\nline 2\nline 3\ntok 1 tok 2".getBytes();
Reader r = new InputStreamReader(new ByteArrayInputStream(inputBytes));

BufferedReader br = new BufferedReader(r);
Scanner s = new Scanner(br);

System.out.println("First line:  " + br.readLine());
System.out.println("Second line: " + br.readLine());
System.out.println("Third line:  " + br.readLine());

System.out.println("Remaining tokens:");
while (s.hasNext())
    System.out.println(s.next());

輸出:

First line:  line 1    // from BufferedReader
Second line: line 2    // from BufferedReader
Third line:  line 3    // from BufferedReader
Remaining tokens:
tok                    // from Scanner
1                      // from Scanner
tok                    // from Scanner
2                      // from Scanner

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM