我有一个简单的服务器和客户端软件。服务器在mac上运行,并使用C语言编写自定义代码,以模拟来自套接字的readline。
客户端用java编写的android和windows机器。我正在观察Println调用的奇怪行为。代码看起来像这样
PrintStream ps = new PrintStream(clientSocket.getOutputStream());
JSONObject json = new JSONObject(responseMap);
String buffer = json.toString();
ps.println(buffer);
ps.flush();
在Windows上运行时的println,在缓冲区字符串后发送/ r / n。 println在android上运行时,在缓冲区字符串之后发送/ n。
println的行为是否应该与diff OS / machines不一致?
答案 0 :(得分:0)
println的行为是否应该与diff OS / machines不一致?
PrintStream
检索平台的行分隔符并将其发送到基础流。
Windows和Android有不同的行分隔符。
答案 1 :(得分:0)
println的行为是否应该与diff OS / machines不一致?
没有。我不知道你有什么想法。您描述的行为是as documented:
行分隔符字符串由系统属性line.separator定义,不一定是单个换行符(' \ n')。