Java如何将字节数组(Byte[])写入文件

后端 潘老师 7个月前 (10-20) 147 ℃ (0) 扫码查看

学习使用不同的解决方案将给定的字节数组写入文件。我们将使用Java NIO、Commons IO和Guava API,它们为这个用例提供了简单的API。

1.Java NIO的Files.write()

Files.write()是最简单的将字节写入文件的方法。

在写入字节时,我们应该非常小心文件的打开选项。默认情况下,使用CREATE、TRUNCATE_EXISTING和WRITE选项。这意味着该方法打开文件进行写入,如果不存在则创建文件,或者最初将常规文件截断为0大小。

byte[] bytes = "testData".getBytes();
Path filePath = Paths.get("test.txt");
Files.write(filePath, bytes);

如果我们不覆盖文件内容,而是要将字节追加到现有文件内容中,那么我们可以使用StandardOpenOption.APPEND选项。

byte[] bytes = "testData".getBytes();
Path filePath = Paths.get("test.txt");
Files.write(filePath, bytes, StandardOpenOption.APPEND);

如果我们想要创建一个新文件,则可以传递StandardOpenOption.CREATE_NEW选项。这确保了如果文件已经存在,该方法将抛出FileAlreadyExistsException。

byte[] bytes = "testData".getBytes();
Path filePath = Paths.get("test.txt");
Files.write(filePath, bytes, StandardOpenOption.CREATE_NEW);

2. 使用FileOutputStream

使用FileOutputStream是另一种好方法。我们可以为新文件或现有文件创建输出流并将字节写入流中。

如果您没有使用try-with-resources语句,请不要忘记关闭输出流。

byte[] bytes = "testData".getBytes();
File file = new File("test.txt");
try (FileOutputStream os = new FileOutputStream(file)) {
    os.write(bytes);
}

3.Commons IO的FileUtils

FileUtils类有一个writeByteArrayToFile()方法,可以将字节数组数据写入指定的文件。如果文件或其父目录不存在,它将创建新的文件和目录。

File file = new File("test.txt");
byte[] bytes = "testData".getBytes();
FileUtils.writeByteArrayToFile(file, bytes);

在项目中包括最新的maven依赖来使用Commons IO。

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.11.0</version>
</dependency>

4.Guava的Files

与之前的解决方案类似,Files.write()方法将字节写入指定的文件。需要注意的是,此方法将覆盖具有字节数组内容的文件。

File file = new File("test.txt");
byte[] bytes = "testData".getBytes();
com.google.common.io.Files.write(bytes, file);

5.结论

在这篇简短的Java教程中,我们学会了使用各种Java API以及Commons IO和Guava库将字节数组内容写入文件。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/10177.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】