添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

170.md

File metadata and controls

Java 将文件读取到 byte[] 数组

原文: https://howtodoinjava.com/java/io/how-to-read-file-content-into-byte-array-in-java/

在 Java 中,在各种情况下都可能需要 将文件读取到字节数组 。 该字节数组可用于通过网络以及其他程序 API 进行进一步处理。 让我们了解几种在 Java 中将文件中的数据读取到字节数组中的方法。

1. 使用 NIO 将文件读取到 byte[] 数组(Java 7 及更高版本)

如果使用的是 Java 7,则 Files.readAllBytes() 是最好的方法。否则,您将需要下面列出的其他 3 个选项中的任何方法。

public class ContentToByteArrayExample
   public static void main(String[] args)
      Path path = Paths.get("C:/temp/test.txt");
      byte[] data = Files.readAllBytes(path);

在使用 Java 8 的情况下,也可以使用此方法。

阅读更多:使用 Java NIO 读取文件的 3 种方法

2. 使用FileInputStream将文件读取到byte[]数组(直到 Java 6)

我正在使用java.io.FileInputStream读取文件的内容,然后将读取的内容转换为字节。

import java.io.File;
import java.io.FileInputStream;
public class ContentToByteArrayExample
   public static void main(String[] args)
      File file = new File("C:/temp/test.txt");
      readContentIntoByteArray(file);
   private static byte[] readContentIntoByteArray(File file)
      FileInputStream fileInputStream = null;
      byte[] bFile = new byte[(int) file.length()];
         //convert file into array of bytes
         fileInputStream = new FileInputStream(file);
         fileInputStream.read(bFile);
         fileInputStream.close();
         for (int i = 0; i < bFile.length; i++)
            System.out.print((char) bFile[i]);
      catch (Exception e)
         e.printStackTrace();
      return bFile;

3. 使用FileUtilsIOUtils将文件读取到字节数组

将数据读入字节数组的另一种好方法是在 Apache Commons IO 库中(如果允许在项目中使用它)。

//Using FileUtils.readFileToByteArray()
byte[] org.apache.commons.io.FileUtils.readFileToByteArray(File file)
//Using IOUtils.toByteArray
byte[] org.apache.commons.io.IOUtils.toByteArray(InputStream input) 

4. 使用 Google Guava 将文件读入字节数组

将数据读入字节数组的另一种好方法是 Google Guava 库(如果允许在您的项目中使用它)。

//Using Files.toByteArray()
byte[] com.google.common.io.Files.toByteArray(File file)
//Using ByteStreams.toByteArray
byte[] com.google.common.io.ByteStreams.toByteArray(InputStream is)

学习愉快!