【问题标题】:java bufferedreader, declaration readlinejava bufferedreader,声明readline
【发布时间】:2015-06-07 08:27:34
【问题描述】:

我正在实现一个 Socket,它将接受来自服务器的数据。服务器将发送数据记录,数据记录由 stx,data,etx 分隔。我的问题是,如果我使用以下代码:

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 字符)

【问题讨论】:

  • 也许我没有完全理解,但是..什么是“数据记录”,“由 stx、数据等分隔”是什么意思?

标签: java sockets bufferedreader java-io


【解决方案1】:

如果您阅读了 BufferedReader.readLine() 的 Javadoc

读取一行文本。行被视为由换行符 ('\n')、回车符 ('\r') 或回车符后紧跟换行符中的任何一种来终止。

所以你可以看到它并没有像你想要的那样做任何事情。

或者我必须自己做?

我建议您将 Scanner 与自定义分隔符一起使用,或者一次解析 BufferedReader 一个字符。

【讨论】:

  • 你是对的!我的错。我的头现在就像搅拌机。我会考虑你的回答。谢谢@Peter Lawrey。
猜你喜欢
  • 2013-03-09
  • 2016-01-08
  • 2018-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-15
  • 1970-01-01
相关资源
最近更新 更多