Возврат каретки и новая строка с 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 - Если возникает ошибка ввода-вывода