2015-04-02 2 views
0

Я реализую Socket, который будет принимать данные с сервера. Сервер отправит запись данных, которая будет разделена stx, data, etx. Мой вопрос: если я использую следующий код:java bufferedreader, декларация readline

client = new Socket("XXX.XXX.XXX.XXX", 50000); 
BufferedReader d = new BufferedReader(new InputStreamReader(client.getInputStream())); 

String line; 
while ((line = d.readLine()) != null) { 
    // do something 
} 

Он автоматически выполнит разделение каждой записи данных? Или я должен сделать это сам? Благодаря

STX = начало текста (ASCII символов)

ETX = Конец текста (ASCII символов)

+0

Может быть, я не совсем понимаю, но .. что такое «запись данных» и что вы подразумеваете под «разделенным stx, data, etx.»? – exoddus

ответ

1

Если вы читали Javadoc для BufferedReader.readLine()

Читает строка текста. Линия считается завершенной любым из строк ('\ n'), возвратом каретки ('\ r') или возвратом каретки, за которым следует сразу строка.

Таким образом, вы можете видеть, что он не делает ничего подобного, чего вы хотите.

Или я должен сделать это сам?

Я предлагаю вам либо использовать сканер с пользовательским разделителем, либо разобрать один символ BufferedReader за один раз.

+0

Вы правы! Моя вина. Теперь голова похожа на миксер. Я рассмотрю ваш ответ. Спасибо @Peter Lawrey. – KostasC

 Смежные вопросы

  • Нет связанных вопросов^_^