Пользовательский BufferReader, который читает и возвращает строку до тех пор, пока шаблон не будет встречен - PullRequest
1 голос
/ 25 января 2012

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 Ответ

3 голосов
/ 25 января 2012

Вас может заинтересовать использование Scanner с пользовательским разделителем (устанавливается с помощью useDelimiter).

Вы действительно не должны переопределять метод с именем readLine, чтобы делать что-либо, кроме чтения строк (как ограничено \r\n, \n\r или \n в зависимости от вашей операционной системы). Это противоречит интуиции и может привести вас в замешательство в будущем.

...