给定一个UTF-8编码的字节数组(作为base64 decoding of a String的结果) - 请问一个正确的方法将它写入UTF-8编码的文件中?
以下源代码(逐字节写入数组)是否正确?
OutputStreamWriter osw = new OutputStreamWriter(
new FileOutputStream(tmpFile), Charset.forName("UTF-8"));
for (byte b: buffer)
osw.write(b);
osw.close();
答案 0 :(得分:4)
不要使用Writer
。只需使用OutputStream
即可。使用try-with-resource的完整解决方案如下所示:
try (FileOutputStream fos = new FileOutputStream(tmpFile)) {
fos.write(buffer);
}
甚至更好,正如Jon在下面指出的那样:
Files.write(Paths.get(tmpFile), buffer);