java - BufferedReader (Java) 可以在不移动指针的情况下读取下一行吗?

标签 java


我试图在不移动指针的情况下读取下一行,这可能吗?

BufferedReader buf = new BufferedReader(new InputStreamReader(fileIS));

while ((readString = buf.readLine()) != null) {
}

While 将按照我的意愿逐行读取,但我需要写入当前行的下一行。

这可能吗?

我的文件包含Http请求数据,第一行是GET请求,
在第二行的主机名中,我需要在 GET 之前拉出主机才能将其连接在一起。
主机/+GET url,

GET /logos/2011/family10-hp.jpg HTTP/1.1  
Host: www.google.com  
Accept-Encoding: gzip  

谢谢。

最佳答案

您可以使用 mark()reset() 标记流中的某个位置,然后返回该位置。示例:

int BUFFER_SIZE = 1000;

buf.mark(BUFFER_SIZE);
buf.readLine();  // returns the GET
buf.readLine();  // returns the Host header
buf.reset();     // rewinds the stream back to the mark
buf.readLine();  // returns the GET again

关于java - BufferedReader (Java) 可以在不移动指针的情况下读取下一行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37655587/

相关文章:

java - Visual Studio Code Java 访问限制

java - SIP ACK 对话框为空

java - 为什么我创建的对象保持为 null?

java - 从 java.sql.Time 创建 jodatime LocalDate

java - (如何)是否可以捕获 Java 三元运算符语句中的异常?

java - 找不到基于 Spring Boot 表达式的访问控制属性

java - Gradle 在编译前重命名包

java - 如何在 Java 中以编程方式初始化 1000 个字符串?

java - 根据内容垂直调整 Jtable 的大小

java - 设计模式 - 如何仅在某些情况下强制执行对象属性(构建器模式、依赖注入(inject))