PrintStream Println在不同的机器上表现不同?

时间:2014-07-25 01:52:10

标签: java android

我有一个简单的服务器和客户端软件。服务器在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不一致?

2 个答案:

答案 0 :(得分:0)

  

println的行为是否应该与diff OS / machines不一致?

PrintStream检索平台的行分隔符并将其发送到基础流。

Windows和Android有不同的行分隔符。

答案 1 :(得分:0)

  

println的行为是否应该与diff OS / machines不一致?

没有。我不知道你有什么想法。您描述的行为是as documented

行分隔符字符串由系统属性line.separator定义,不一定是单个换行符(' \ n')。