@JaredBeekman Документы JDK хороши, но не включают все. Например, из этого описания неясно, возвращается ли последняя пустая строка (как часто можно увидеть в текстовом редакторе) как пустая строка или вообще не рассматривается как строка.

ользую следующий код для установки 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

 AhmetB - Google21 янв. 2011 г., 13:14
Я полагаю, вы используетеBufferedReader с участиемrdкогда вы читаете сreadLine(), \n а также\r Символы будут обрезаны от результата, вы не можете увидеть их, если вы используете этот метод. Вы должны рассмотреть возможность использованияread().
 aioobe21 янв. 2011 г., 12:59
while (line = rd.readLine()) даже не скомпилируется. Кроме того, какой типrd и как ты к этому относишься?

Ответы на вопрос(2)

Решение Вопроса

rd имеет типBufferedReader нет никакого способа выяснить, еслиreadLine() вернул то, что закончилось\n, \r или же\r\n... символы конца строки отбрасываются и не являются частью возвращаемой строки.

вы действительно заботитесь об этих персонажах, вы не можете пройти черезreadLine(), Например, вам придется читать символы один за другимread().

 maaartinus21 янв. 2011 г., 13:06
Ему должно быть все равно. Там должно быть, но это лучше, он работает с любым окончанием строки. Так что рассмотрение всего, что возвращает bufferedReader.readLine в виде строки, - это путь, ИМХО.
 Carlos Heuberger21 янв. 2011 г., 14:20
Я полагаю, вы имели в видуreadLine вместоgetLine (только в javax.sound. * для Java SE)
 aioobe21 янв. 2011 г., 13:09
Мне не нравятся вопросы / комментарии, начинающиеся с «ему наплевать на это» ... он мог бы, например, сидеть с тестовой спецификацией, которая говорит «ищите \ r \ n использует». Это маловероятно, но дело в следующем:ты не знаешь!
 aioobe21 янв. 2011 г., 13:46
Ах да, конечно, спасибо @Sergey.
 Sergei Tachenov21 янв. 2011 г., 13:37
Нет ничего плохого в использовании BufferedReader. Просто используйте символьные методы вместо readLine ().

ИзJavadocs:

public String readLine() throws IOException

Прочитайте строку текста. Строка считается завершенной любым из перевода строки ('\ n'), возврата каретки ('\ r') или возврата каретки, за которым сразу следует перевод строки.
Возвращает:
Строка, содержащая содержимое строки,не включая символы окончания строкиили ноль, если достигнут конец потока
Броски:
IOException - Если ошибка ввода-вывода происходит

 Jared Beekman27 июл. 2013 г., 18:26
Ничего похожего на несколько секунд в документации JDK. Что заняло бы меньше времени, чем опера.
 industryworker359511225 сент. 2015 г., 12:39
@JaredBeekman Документы JDK хороши, но не включают все. Например, из этого описания неясно, возвращается ли последняя пустая строка (как часто можно увидеть в текстовом редакторе) как пустая строка или вообще не рассматривается как строка.
 wolfdawn15 янв. 2015 г., 20:27
Но это не решает проблему, как вы получаете символы окончания строки в строке?

Ваш ответ на вопрос