java - 使用 BufferedReader 读取所有行而不是清空它

标签 java bufferedreader

BufferedReader具有来自套接字的数据的对象。如何获得完整BufferedReader内容而不删除它。我需要它来进行追踪。

最佳答案

你应该mark()起始缓冲区位置,以便您的 reset()电话又回到了开头。例如,如果您正在读取字符,并且想要标记返回的位置:

Data sample: A B C D

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());

将打印:

A B C D C D

(一个字符占用 2 个字节)

关于java - 使用 BufferedReader 读取所有行而不是清空它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56393532/

相关文章:

java - 在 Java 中找不到 Decimal Format 类

Java泛型类型

java - 使用 jackson 将 json 反序列化为 java - 特殊字符问题

java - 如何读取用户输入的字符?

java - 使用 Runtime.exec 处理 i/o 流

java - StringBuffer 未正确打印

java - InputStreamReader 未读取 č ž š 字符

java - 我该如何解决这个 java.lang.OutOfMemoryError : Java heap space?

java - 如何在 Android 中经过一定时间后停止 BufferedReader

java - Facade模式的使用