У меня есть этот код в Java:
InputStreamReader isr = new InputStreamReader(getInputStream());
BufferedReader ir = new BufferedReader(isr);
String line;
while ((line = ir.readLine()) != null) {
//do stuff with "line"
}
Если входной поток содержит следующее: "hello\nhey\ryo\r\ngood-day", тогда на каждой итерации будет следовать строка:
- привет
- эй
- лет
- хороший день
Я хочу читать по одной строке за раз, но я хочу сохранить символ окончания строки:
- привет\п
- эй\г
- лет\г\п
- хороший день
Как я могу это сделать? Есть ли готовые классы, которые я могу использовать?
-
Обновление:
Вот что я пытаюсь сделать и почему мне нужно сохранить символ конца строки (и почему символ EOL может отличаться).
Я читаю запрос POST. Они состоят из чистых текстовых сообщений, где строки всегда заканчиваются на \r\n (по стандартной спецификации). Однако запрос POST может содержать двоичные данные, которые могут содержать байты, которые похожи на символы завершения на объекты Java Reader.
В моем примере загружается изображение. Данные изображения отправляются по одной строке. Однако, однако, двоичные данные изображения содержат байты, которые READER будет интерпретировать как "\n", "\ r" или иногда "\ r\n", если эти два байта находятся рядом друг с другом.
Мне нужно прочитать запрос POST по одной строке за раз, потому что это работает. Полагаю, я МОЖЕТ прочитать все, а потом разобрать все. Но это не эффективно, особенно если загружен файл с большим файлом (скажем, 1024 MiB).