ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# Java 将文件读取到`byte[]`数组 > 原文: [https://howtodoinjava.com/java/io/how-to-read-file-content-into-byte-array-in-java/](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()`](https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#readAllBytes%28java.nio.file.Path%29)是最好的方法。否则,您将需要下面列出的其他 3 个选项中的任何方法。 ```java 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 种方法](//howtodoinjava.com/java-7/nio/3-ways-to-read-files-using-java-nio/ "3 ways to read files using Java NIO") ## 2\. 使用`FileInputStream`将文件读取到`byte[]`数组(直到 Java 6) 我正在使用[`java.io.FileInputStream`](https://docs.oracle.com/javase/7/docs/api/java/io/FileInputStream.html)读取文件的内容,然后将读取的内容转换为字节。 ```java 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()]; try { //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\. 使用`FileUtils`和`IOUtils`将文件读取到字节数组 将数据读入字节数组的另一种好方法是在 [Apache Commons IO](https://commons.apache.org/io/) 库中(如果允许在项目中使用它)。 ```java //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](https://github.com/google/guava) 库(如果允许在您的项目中使用它)。 ```java //Using Files.toByteArray() byte[] com.google.common.io.Files.toByteArray(File file) //Using ByteStreams.toByteArray byte[] com.google.common.io.ByteStreams.toByteArray(InputStream is) ``` 学习愉快!