序列化文本文件的新行丢失

时间:2011-10-24 13:59:12

标签: java perl xml-rpc

我正在尝试通过XML-RPC Base64编码/解码将本地文件放到远程主机上。这适用于二进制文件,但是当我尝试通过文本文件发送时,所有行结尾都被删除。为什么会这样?

在客户端,

my $buf;
my $encoded = '';
while (read($FILE, $buf, 60 * 57)) {
   $encoded .= encode_base64($buf);
}

然后将其发送到我的Redstone XML-RPC服务器,该服务器接收并写出来:

// Create file
   File file = new File(path);
   file.createNewFile();

// Decode the encoded data sent over into bytes
   byte[] bytes = Base64.decode(data.getBytes());

// Write them out to the file
    FileOutputStream os = new FileOutputStream(file);
    os.write(bytes);
    os.flush();
    os.close();

2 个答案:

答案 0 :(得分:0)

尝试在二进制模式下设置$ FILE,需要在open命令后指定:

open my $FILE, '<', 'the_file_name.extension';
binmode $FILE;

# your code ...

答案 1 :(得分:0)

问题是我在记事本中打开,这不能识别CRLF结尾。