BufferedReader, другой объект для получения строки - PullRequest
1 голос
/ 15 января 2011

В Java есть еще один объект типа BufferedReader для чтения данных, полученных сервером ??Поскольку сервер отправляет строку без новой строки, и клиент не печатает никакой строки, пока Сервер не закроет форму подключения Timeout (сообщение о тайм-ауте имеет новую строку!), После того как Клиент напечатает все полученные сообщения и сообщение о тайм-ауте отправит сервер!помогите мне спасибо !!

Ответы [ 4 ]

2 голосов
/ 15 января 2011

Просто не читайте по новым строкам, используя метод readLine(), но читайте символ за символом, используя метод read().

for (int c = 0; (c = reader.read()) > -1;) {
    System.out.print((char) c);
}
2 голосов
/ 15 января 2011

Вы попросили использовать другой класс, поэтому в этом случае попробуйте Scanner .Обычно он используется для разграничения входных данных, основанных на шаблонах или типах, выведенных из входных данных (например, чтение по байтовым основаниям или по принципу int-by-int, или некоторой их комбинации)Тем не менее, вы также можете использовать его как «читатель» общего назначения, чтобы охватить ваш вариант использования.

1 голос
/ 15 января 2011

Когда вы читаете что-либо с сервера, вы должны строго следовать протоколу связи.Например, сервер может быть HTTP-сервером или SMTP-сервером, он может зашифровать данные перед отправкой, некоторые данные могут быть закодированы по-разному и т. Д.

Таким образом, вы должны спросить:сервера я хочу получить доступ?Как он отправляет мне байты?А кто-то другой уже проделал работу по интерпретации байтов, чтобы я мог быстро получить данные, которые мне действительно нужны?

Если это HTTP-сервер, вы можете использовать код new URL("http://example.org/").openStream().Тогда вы получите поток байтов.Как вы конвертируете эти байты в символы, строки и прочее - это еще одна задача.

0 голосов
/ 15 января 2011

Вы можете попробовать

InputStream is = ... // from input
String text = IOUtils.toString(is);

превращает ввод в текст, без перевода строки (это также сохраняет оригинальные переводы строки)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...