Есть ли у Java простой метод для чтения строки из InputStream без буферизации? BufferedReader не подходит для моих нужд, потому что мне нужно повторно передавать как текстовые, так и двоичные данные через одно и то же соединение, и буферизация просто мешает.Чтение строк из InputStream без буферизации
ответ
Вы можете попробовать класс Scanner: http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html
Однако это может буфера ввода, если не символы перевода строки не присутствуют:
Поскольку этот метод продолжает поиск через вход ищет для line , он может буферизовать весь вход, который ищет линию, чтобы пропустить, если нет разделителей строк .
Сканер буферизует ввод даже после новой строки :( –
'Scanner' выполняет буферизацию прошлой строки. У меня есть' StringR eader' с семью строками и «Сканер» буферизирует их все за один снимок. –
Возможно, вам лучше читать InputStream с помощью BufferedReader и добавлять строки чтения к String.
Затем вы можете манипулировать строкой, если хотите, не беспокоясь о буферизации.
В конце концов он вручную вручную считывал байт после байта из InputStream без упаковки InputStream. Все, что я пытался, как сканер и InputStreamReader, читает вперед (буферы) вход :(
Я предполагаю, что я пропустил некоторые случаи, как \ г.
public static String readLine(InputStream inputStream) throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int c;
for (c = inputStream.read(); c != '\n' && c != -1 ; c = inputStream.read()) {
byteArrayOutputStream.write(c);
}
if (c == -1 && byteArrayOutputStream.size() == 0) {
return null;
}
String line = byteArrayOutputStream.toString("UTF-8");
return line;
}
- 1. Чтение строки из ByteBuffer без двойной буферизации
- 2. Чтение из InputStream
- 3. Чтение InputStream из Java Process
- 4. Чтение кусков байтов из InputStream
- 5. expectJ - Чтение InputStream из spawn.send()
- 6. Чтение InputStream из ответа webservice
- 7. Чтение из InputStream вызывает OutOfMemoryError
- 8. SqlDataReader, курсор firehose - без буферизации?
- 9. WM_EX_COMPOSITED без двойной буферизации
- 10. Чтение InputStream асинхронно
- 11. Чтение InputStream для Arraylist
- 12. Чтение InputStream в Java
- 13. Чтение InputStream как UTF-8
- 14. Чтение из InputStream и добавления в строку
- 15. Чтение пакетов из InputStream - Правильный дизайн
- 16. Чтение из InputStream до двойных кавычек
- 17. Чтение из InputStream в байт [] throws IndexOutOfBoundsException
- 18. InputStream чтение из активов в Android
- 19. Чтение кодированного текста UTF-8 из InputStream
- 20. Медленное чтение из сокета и inputStream
- 21. Чтение из InputStream и запись в OutputStream
- 22. чтение из закрытого InputStream в IText
- 23. Когда должен ImageIO прекратить чтение из InputStream?
- 24. Android, чтение «NULL» из InputStream - интерпретация
- 25. Чтение строк из BufferReader
- 26. без буферизации STDIN чтения
- 27. Дроссельный поток без буферизации
- 28. Groovy InputStream чтение закрытие висит
- 29. Чтение строк из Java FileInputStream без потери моего места
- 30. Java чтение текстовых строк без разделителей строк
Через двоичные данные, не имеют линий, Как узнать о том, являются ли ваши данные текстовыми или двоичными? – belgther
У меня есть их. Запрос начинается с текстовых строк, описывающих его, а иногда и двоичных данных. – Ree
Возможный дубликат: http://stackoverflow.com/questions/25215564/how-to-read-a-line-from-inputstream-without-buffering-the-input –