Eine Java-Anwendung sendet ein XML an eine Python-Anwendung. Sie sind beide auf der gleichen Maschine. Wenn ich die empfangene Datei öffne, kann ich zusätzliche Zeilen sehen (wegen zusätzlicher CRs). Was könnte der Grund dafür sein?Python fügt ein zusätzliches CR am Ende der empfangenen Zeilen hinzu
Dies ist der Empfänger:
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
Dies ist der Absender ist:
while ((bytesRead = file_inp.read(buffer)) > 0) {
output_local.write(buffer, 0, bytesRead);
}
Dies ist die ursprüngliche Datei:
<root><CR><LF>
<SONG><CR><LF>
<ARTIST>Coldplay</ARTIST><CR><LF>
</SONG><CR><LF>
</root><CR><LF>
Dies ist erhalten:
<root><CR>
<CR><LF>
<SONG><CR>
<CR><LF>
<ARTIST>Coldplay</ARTIST><CR>
<CR><LF>
</SONG><CR>
<CR><LF>
</root><CR>
<CR><LF>
Auf welchem Betriebssystem laufen die Anwendungen? Ist es Windows? – gbulmer
ist es Windows 7. – markAnthopins
Schaust du dir die Datei "c: /python/python.xml" an? Unter Windows führen einige der C-Bibliotheken eine Carriage-Return/Line-Feed-Verarbeitung durch, um UNIX-Dateien mit Windows-Dateien kompatibel zu machen. Unix verwendet nur ein Zeichen für die Zeilentrennung (\ n), aber Windows verwendet cr + lf. Es ist also nur möglich, dass zwei Verarbeitungsgruppen (Java und Python) ein Zeilentrennzeichen auf zwei erweitern: – gbulmer