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

时间:2012-01-24 23:50:41

标签: 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是一个字符。

1 个答案:

答案 0 :(得分:3)

您可能有兴趣将Scanner与自定义分隔符一起使用(使用useDelimiter设置)。

您真的不应该覆盖名为readLine的方法来执行除读取行之外的任何操作(由\r\n\n\r\n根据您的操作系统分隔)。这是违反直觉的,可能会让你自己或其他人在后来感到困惑。