FileOutputStream将“0A”字节更改为“0D 0A”

时间:2017-04-20 07:37:55

标签: java fileoutputstream

我使用以下代码将float转换为byte[]数组:

byte[] bytes = ByteBuffer.allocate(4).putFloat(number).array();

例如,如果我输入数字0.02f,我会得到字节[60,-93,-41,10] 然后我尝试使用以下代码将此byte[]写入文件:

FileOutputStream fos = new FileOutputStream(file);
fos.write(bytes);
dbf.close();

在HEX编辑器的大多数平台上,此文件如下所示:3C A3 D7 0A。但在特殊设备上,相同的代码会给出:3C A3 D7 0D 0A。在每个0A 0D出现之前。

我知道0ALF0D 0ACRLF,但我不知道这是怎么回事。

可以连接什么?

1 个答案:

答案 0 :(得分:2)

听起来就像是将数据传输到您的特殊设备"它被翻译为好像是一个文本文件。这将以您看到的方式破坏文件。例如FTP具有文本传输模式,可以执行此操作。

你不应该混淆文本和二进制文件。您正在编写二进制格式,如果您将其作为二进制格式读取,则新行不相关。

请勿将其作为文字阅读,因为它不是文字而且您不会遇到问题。

相关问题