Java 将字节[]输出到.txt文件

Java 将字节[]输出到.txt文件,java,java-io,Java,Java Io,我正在尝试将字节数组输出到文件。调用System.out.println(ouput\u流)时,我创建的字符串将正确显示。悬停,当我使用FileOutputStream时,它不能正确输出。这是我到目前为止得到的。有什么建议吗 FileOutputStream fos = new FileOutputStream("outputFile.txt"); OutputStreamWriter out = new OutputStreamWriter(fos, "UTF-8"); String re

我正在尝试将字节数组输出到文件。调用System.out.println(ouput\u流)时,我创建的字符串将正确显示。悬停,当我使用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)时,控制台显示信息。但是,它没有正确输出文件。我之前问过类似的问题,但现在在输出上遇到了困难。感谢您的帮助。

您的代码看起来有点奇怪(您想要字节还是字符串),但应该可以

您在文件中找到了什么?在查看流/写入程序之前是否关闭了流/写入程序?如果没有,它很可能仍在某个地方被缓冲


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

尝试使用BufferedWriter

BufferedWriter writer = new BufferedWriter(new FileWriter("outfile"));
writer.write(received_string);

看看apachecommons


应该做你需要做的事

根本不使用字符串或写入程序。只需将数据包中的字节直接复制到文件中:

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

这样您就不可能损坏数据。

字节不是文本。您想显示什么?您想输出字节[]还是字符串?您说“它没有正确输出文件”。关闭writer后,文件包含什么?那里有看起来像亚洲的字符。而System.out.println输出ASCII英文字符。字节文件是从类似的文件创建的,并通过网络传输。我得到的结果是一个字节数组,我想我对此无能为力。使用
FileWriter
只会让情况变得更糟,因为它使用平台默认编码,OP希望使用UTF-8。