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

标签 java utf-8 java-io

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

最佳答案

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

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

或者甚至更好,正如 Jon 在下面指出的那样:

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

关于java - 将字节数组写入 UTF8 编码的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30345688/

相关文章:

java - 调用 startRecording() 方法时 Android AudioRecord 失败

Java程序交换字符串中的字符

php - 如何使用 PHP 脚本转换 CSV 文件

postgresql - Vagrant 设置让 PostgreSQL 默认使用 UTF8 编码?

java - Spring中RestTemplate中的unicode转换

java - 无法导入 import StandardCopyOption

java - For 循环检查文件是否存在以及是否不创建文件

java - 尝试创建一个删除按钮以从列表中删除项目

java - 使用 webflux bean 验证时出现不明确的异常(WebExchangeBindException 与 ConstraintViolationException)

java - 无法抗拒工作