У меня есть этот код на 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", то строковая переменная будет следовать на каждой итерации:
- привет
- эй
- йо
- добрый день
Я хочу прочитать одну строку ввремя, но я хочу сохранить символ (ы) окончания строки:
- привет \ n
- эй \ r
- йо \ r \ n
- добрый день
Как я могу это сделать?Есть ли готовые классы, которые я могу использовать?
-
Обновление:
Вот что я пытаюсь сделать и почему янеобходимо сохранить символ конца строки (и почему символ EOL может отличаться).
Я читаю запрос POST.Они состоят из чистых текстовых сообщений, где строки всегда заканчиваются \ r \ n (по стандартной спецификации).Однако запрос POST может содержать двоичные данные, которые могут содержать байты, которые выглядят как символы завершения для объектов Java Reader.
В моем примере загружается изображение.Данные изображения отправляются в одну строку.Однако двоичные данные изображения содержат байты, которые СЧИТАТЕЛЬ будет интерпретировать как "\ n", "\ r" или иногда "\ r \ n", если эти два байта находятся рядом друг с другом.
Я должен прочитать запрос POST по одной строке за раз, потому что это так работает.Я полагаю, я МОЖЕТ прочитать все, а затем разобрать все это.Но это неэффективно, особенно если загружается файл большого размера (скажем, 1024 МБ).