Java应用程序将XML发送到Python应用程序。它们都在同一台机器上。
当我打开收到的文件时,我会看到多余的行(因为有额外的CR)。这可能是什么原因?

这是接收者:

f = open('c:/python/python.xml', 'w')
while 1:
    print("xxx")
    data = socket.recv(recv_frame)
    remain_byte = remain_byte - len(data)
    print(remain_byte)
    f.write(data)
    if (something):
        break

这是发件人:
    while ((bytesRead = file_inp.read(buffer)) > 0) {
        output_local.write(buffer, 0, bytesRead);
    }

这是原始文件:
<root><CR><LF>
    <SONG><CR><LF>
        <ARTIST>Coldplay</ARTIST><CR><LF>
    </SONG><CR><LF>
</root><CR><LF>

这是收到的:
<root><CR>
<CR><LF>
    <SONG><CR>
<CR><LF>
        <ARTIST>Coldplay</ARTIST><CR>
<CR><LF>
    </SONG><CR>
<CR><LF>
</root><CR>
<CR><LF>

最佳答案

将文件模式从'w'更改为'wb',否则Python会将所有换行符('\n')转换为平台特定的表示形式(Windows的'\r\n')。二进制模式禁止这种转换。

关于java - Python在接收​​到的行的末尾添加了一个额外的CR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10110702/

10-09 05:12