java - 自定义 BufferReader,它读取并返回字符串直到满足模式

标签 java sockets inputstream bufferedreader

java BufferReader 有一个方法 readLine 读取到 '\n''\r' 是读取然后返回行字符串。示例:

InputStreamReader isr = new InputStreamReader(socket.getInputStream());
BufferReader br  =new BufferReader(isr); 
String line = null;
while ((line = br.readLine()) != null) {
  // Do something 
}

我想要一个读取完全像 BufferReader 的自定义缓冲区,但是当它匹配 '\n' 时不返回行,它应该返回字符串直到它读取一个模式10=???\u0001

它基本上是一条始终以 10=???\u0001 结尾的修复消息,其中 ? 是数字,\u0001 是一个角色。

最佳答案

您可能对使用 Scanner 感兴趣使用自定义分隔符(使用 useDelimiter 设置)。

你真的不应该覆盖一个名为 readLine 的方法来做除了读取行之外的任何事情(由 \r\n, \n\r \n 取决于您的操作系统)。这是违反直觉的,可能会让您自己或以后的其他人感到困惑。

关于java - 自定义 BufferReader,它读取并返回字符串直到满足模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8996041/

相关文章:

java - 如果里面 while

java - 为什么我收到一条错误消息,提示找不到可变长度?

java - spring boot @value变量的JUnit测试

java - Mockito NullPointerException - 无法识别存储库

java - 检查对象是否有Java中的方法?

java - Android 2-Way TCP/IP ServerSocket/套接字通信

c - 如何正确重用套接字来发送UDP数据包?

delphi - 什么会导致套接字在每次 HTTP 事务后快速关闭?

java - 读取输入流时出错 : Software caused connection abort' in java server

java - 将字节流转换为字符串(UTF-8 编码)