我试图将字节数组输出到文件中。当我调用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)时,控制台显示信息信息。但是,它没有正确输出文件。我之前问过类似的问题,但现在我在输出上苦苦挣扎。谢谢你的帮助。
答案 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);