Возврат каретки и новая строка с Java и readLine()
Я использую следующий код для установления HTTP-соединения и чтения данных:
con = (HttpURLConnection) new URL("http://stream.twitter.com/1/statuses/sample.json").openConnection();
...
con.connect();
while (line = rd.readLine()) {
if (line.contains("\r\n")) {
System.out.println("Carriage return + new line");
}
}
Однако, похоже, что "\ r\n" не является частью строки (line
), хотя сервер возвращает их. Как я могу прочитать данные и определить "\ r\n"?
Спасибо,
Joel
Ответы
Ответ 1
Если rd
имеет тип BufferedReader
, нет способа выяснить, вернул ли readLine()
что-то, что заканчивалось на \n
, \r
или \r\n
... символы конца строки отбрасываются, а не являются частью возвращаемой строки.
Если вам действительно нравятся эти персонажи, вы не можете пройти через readLine()
. Вам нужно, например, прочитать символы один за другим через read()
.
Ответ 2
Из javadocs:
public String readLine() throws IOException
Прочитайте строку текста. Линия считается завершенной любым одним строком строки ('\n'), возвратом каретки ('\ r') или возвратом каретки, с которым немедленно следует строка. Возвращает:
Строка, содержащая содержимое строки, , не включая символы завершения строки, или null, если конец потока достигнут
Броски:
IOException - Если возникает ошибка ввода-вывода