【发布时间】:2014-04-10 01:41:00
【问题描述】:
我在 java 中有一个 FileOutputStream,它正在读取 UDP 数据包的内容并将它们保存到一个文件中。在阅读它们的最后,我有时想转换文件的编码。问题是,目前这样做时,它只会使文件的所有内容加倍。我能想到的唯一解决方法是使用新编码创建一个临时文件,然后将其保存为原始文件,但这似乎太老套了。
我一定只是忽略了我的代码中的某些内容:
if(mode.equals("netascii")){
byte[] convert = new byte[(int)file.length()];
FileInputStream input = new FileInputStream(file);
input.read(convert);
String temp = new String(convert);
convert = Charset.forName("US-ASCII").encode(temp).array();
fos.write(convert);
}
JOptionPane.showMessageDialog(frame, "Read Successful!");
fos.close();
}
有什么可疑的吗?
提前感谢您的帮助!
【问题讨论】:
-
您应该在此处使用 Reader 和 Writer,并在这两种情况下指定适当的 CharSet。
标签: java character-encoding fileoutputstream