2. FileInputStream - Java 6

在 Java 6 中使用 java.io.FileInputStream 读取文件的内容。

示例 2:逐字节读取文件

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
      {
         
         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;
   }
}
Java 如何将文件读入字节数组。

1. Files.readAllBytes() - Java 8

如果我们使用的是 Java 7、8 及更高版本,Files.readAllBytes() 是最好的方法。

示例 1:在 Java 8 中读取文件到 byte[]

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

4. 使用 Files或者 ByteStreams - Guava

在 Google Guava 库的Files 或者 ByteStreams 将数据读入字节数组

示例 4:将整个文件读入 byte[]

//Using Files.toByteArray()
byte[] com.google.common.io.Files.toByteArray(File file)
//Using ByteStreams.toByteArray
byte[] com.google.common.io.ByteStreams.toByteArray(InputStream is)
欢迎来到之路教程(on itroad-com)

3. FileUtils, IOUtils - Apache Commons IO

另一种将数据读入字节数组的好方法是在 apache commons IO 库中。

示例 3:将整个文件读入 byte[]

//Using FileUtils.readFileToByteArray()
byte[] org.apache.commons.io.FileUtils.readFileToByteArray(File file)
//Using IOUtils.toByteArray
byte[] org.apache.commons.io.IOUtils.toByteArray(InputStream input)
日期:2020-09-17 00:09:25 来源:oir作者:oir