Java 将字节[]输出到.txt文件
我正在尝试将字节数组输出到文件。调用System.out.println(ouput\u流)时,我创建的字符串将正确显示。悬停,当我使用FileOutputStream时,它不能正确输出。这是我到目前为止得到的。有什么建议吗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
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。