Java中将文件读取为byte[]字节数组

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

在Java中,将文件读取为byte[]字节数组经常会被用到,例如通过网络传递信息以及通过其他API进行进一步处理。以下是一些在Java中从文件读取数据到字节数组的方法:

1.使用Files.readAllBytes()

Files.readAllBytes()是适用于Java 7、8及更高版本的最佳方法。它会读取文件的所有字节并关闭文件。文件也会在发生I/O错误或抛出其他运行时异常时关闭。

请注意,此方法会在一条语句中将所有字节读入内存,因此不要用于读取大文件,否则可能会遇到OutOfMemoryError

Path path = Paths.get("C:/temp/test.txt");
byte[] data = Files.readAllBytes(path);

2.使用FileInputStream

使用FileInputStream来读取文件的内容,当您已经拥有InputStream引用时。不要忘记在读取完成后关闭流,或者使用try-with-resources块。

File file = new File("C:/temp/test.txt");
byte[] bytes = new byte[(int) file.length()];
try(FileInputStream fis = new FileInputStream(file)) {
  fis.read(bytes);
}

3.使用Apache Commons IO

另一种将数据读取到字节数组中的好方法是使用Apache Commons IO库。它提供了用于处理IO操作的几个有用的类。

在以下示例中,我们使用FileUtils类将文件内容读取到字节数组中。文件无论成功还是读取错误都会被关闭。

byte[] bytes = FileUtils.readFileToByteArray(file);

还有一个类叫做IOUtils,可以以相同的方式使用。

byte[] bytes = IOUtils.toByteArray(new FileInputStream(file));

4.使用Guava

将数据读取到字节数组的另一种好方法是使用Google Guava库。

以下示例使用com.google.common.io.Files类将文件内容读取到字节数组中。

根据您的需求,您可以选择上述任何方法来将文件内容读取为字节数组。

byte[] bytes3 = com.google.common.io.Files.toByteArray(file);

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

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

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