首页 > 解决方案 > 使用 BufferedReader 读取所有行而不是清空它

问题描述

BufferedReader具有来自套接字的数据的对象。如何在BufferedReader不删除的情况下获取全部内容。我需要它来进行追踪。

标签: javabufferedreader

解决方案


您应该mark()开始缓冲位置,以便您的reset()呼叫回到开头。例如,如果您正在阅读 chars,并且想要标记要返回的位置:

数据样本:ABCD

System.out.println((char)buffer.read());
System.out.println((char)buffer.read());
buffer.mark(4); // save the position
System.out.println((char)buffer.read());
System.out.println((char)buffer.read());
buffer.reset() // back to 4
System.out.println((char)buffer.read());
System.out.println((char)buffer.read());

将打印:

ABCD光盘

(因为一个 char 需要 2 个字节)


推荐阅读