Java - Fileをbyte[]に​​変換する方法

Java – Fileをbyte []に​​変換する方法

ファイルをbyte []に​​変換するには、これを試してください:

  File file = new File("/temp/abc.txt");
  //init array with file length
  byte[] bytesArray = new byte[(int) file.length()];

  FileInputStream fis = new FileInputStream(file);
  fis.read(bytesArray); //read file into bytes[]
  fis.close();

  return bytesArray;

またはNIO

  String filePath = "/temp/abc.txt";

  byte[] bFile = Files.readAllBytes(new File(filePath).toPath());
  //or this
  byte[] bFile = Files.readAllBytes(Paths.get(filePath));

完全な例

このJavaの例は、従来のFileInputStreamクラスとjava.nioクラスを使用して、ファイルをバイト配列に読み込む方法を示しています。

FileToArrayOfBytes.java

package com.example;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class FileToArrayOfBytes {

    public static void main(String[] args) {

        try {

            // convert file to byte[]
            byte[] bFile = readBytesFromFile("C:\\temp\\testing1.txt");

            //java nio
            //byte[] bFile = Files.readAllBytes(new File("C:\\temp\\testing1.txt").toPath());
            //byte[] bFile = Files.readAllBytes(Paths.get("C:\\temp\\testing1.txt"));

            // save byte[] into a file
            Path path = Paths.get("C:\temp\\test2.txt");
            Files.write(path, bFile);

            System.out.println("Done");

            //Print bytes[]
            for (int i = 0; i < bFile.length; i++) {
                System.out.print((char) bFile[i]);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    private static byte[] readBytesFromFile(String filePath) {

        FileInputStream fileInputStream = null;
        byte[] bytesArray = null;

        try {

            File file = new File(filePath);
            bytesArray = new byte[(int) file.length()];

            //read file into bytes[]
            fileInputStream = new FileInputStream(file);
            fileInputStream.read(bytesArray);

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fileInputStream != null) {
                try {
                    fileInputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }

        return bytesArray;

    }

}