将byte []输出到.txt文件

时间:2013-03-19 03:00:06

标签: java java-io

我试图将字节数组输出到文件中。当我调用System.out.println(ouput_stream)时,我创建的String正确显示。在我使用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 个答案:

答案 0 :(得分:1)

查看Apache Commons FileUtils.writeByteArrayToFile

应该做你需要的事情

答案 1 :(得分:0)

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

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

尽管如此,如果您真的想将该数据包传输到文件,请尽量避免转换为String。

答案 2 :(得分:0)

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

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

然后你不可能破坏数据。

答案 3 :(得分:-1)

尝试使用BufferedWriter ..

BufferedWriter writer = new BufferedWriter(new FileWriter("outfile"));
writer.write(received_string);
相关问题