编程语言
首页 > 编程语言> > java-将字节数组写入UTF8编码的文件

java-将字节数组写入UTF8编码的文件

作者:互联网

给定一个采用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();

解决方法:

不要使用作家.只需使用OutputStream.使用try-with-resource的完整解决方案如下所示:

try (FileOutputStream fos = new FileOutputStream(tmpFile)) {
    fos.write(buffer);
}

甚至更好,正如Jon指出的那样:

Files.write(Paths.get(tmpFile), buffer);

标签:utf-8,java-io,java
来源: https://codeday.me/bug/20191028/1951469.html