3

我正在尝试将字节数组输出到文件。当我调用 System.out.println(ouput_stream) 时,我创建的字符串正确显示。悬停,当我使用 FileOutputStream 时它无法正确输出。这是我到目前为止所得到的。有什么建议么?

FileOutputStream fos = new FileOutputStream("outputFile.txt"); 
OutputStreamWriter out = new OutputStreamWriter(fos, "UTF-8");

String received_string = new String(rPacket.getData(), 0, rPacket.getLength(), "UTF-8");

System.out.println(received_string);
out.write(received_string, 0, received_string.length());

当我调用 System.out.println(received_string 时,控制台会显示信息信息。但是,它没有正确输出文件。我之前问过类似的问题,但现在正在努力输出。感谢您的帮助。

4

4 回答 4

1

看看 Apache Commons FileUtils.writeByteArrayToFile

应该做你需要的

于 2013-03-19T03:15:02.203 回答
0

你的代码看起来有点奇怪(你想要字节还是字符串),但应该没问题。

你在文件中发现了什么?您在查看之前关闭了流/写入器吗?如果没有,它可能仍在某处缓冲。

但是,如果您真的只想将该数据包通过管道传输到文件,请尽量避免转换为字符串。

于 2013-03-19T03:05:47.203 回答
0

根本不要使用 String 或 Writer。只需将字节直接从数据包复制到文件:

fos.write(rPacket.getData(), rPacket.getOffset(), rPacket.getLength());

那么你不可能破坏数据。

于 2013-03-20T22:54:03.973 回答
-1

尝试使用 BufferedWriter ..

BufferedWriter writer = new BufferedWriter(new FileWriter("outfile"));
writer.write(received_string);
于 2013-03-19T03:11:31.113 回答