加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用BufferedReader和Scanner读取文本文件

发布时间:2020-12-15 08:44:00 所属栏目:Java 来源:网络整理
导读:我需要读取文本文件的前n行作为行(每行可能包含或不包含空格).文本文件的其余部分包含未知数量N的以空格分隔的标记(分隔符是空格,制表符和换行符的混合,所有这些都被视为与分隔符完全相同). 我知道如何使用BufferedReader读取行.我知道如何使用Scanner读取令
我需要读取文本文件的前n行作为行(每行可能包含或不包含空格).文本文件的其余部分包含未知数量N的以空格分隔的标记(分隔符是空格,制表符和换行符的混合,所有这些都被视为与分隔符完全相同).

我知道如何使用BufferedReader读取行.我知道如何使用Scanner读取令牌.但是,如何以上述方式将这两种不同的阅读模式组合成单个文本文件?

解决方法

您可以使用扫描仪执行这两项任务.请参阅 Scanner.nextLine方法.

如果你真的需要同时使用BufferedReader和Scanner,你可以这样做:

byte[] inputBytes = "line 1nline 2nline 3ntok 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读