Рубрики
Без рубрики

Java – Как сохранить байт[] в файл

В Java мы можем использовать “Files.write”, чтобы сохранить “байт[]` в файл.

В этой статье показано несколько способов сохранения байта[] в файл.

Для JDK 1.7 и выше NIO Files.write является самым простым решением для сохранения байта [] в файл.

  // bytes = byte[]
  Path path = Paths.get("/path/file");
  Files.write(path, bytes);

FileOutputStream является лучшей альтернативой.

  try (FileOutputStream fos = new FileOutputStream("/path/file")) {
      fos.write(bytes);
      //fos.close // no need, try-with-resources auto close
  }

Если у нас есть Apache Commons IO , попробуйте FileUtils .

  FileUtils.writeByteArrayToFile(new File("/path/file"), bytes);
  
      commons-io
      commons-io
      2.7
  

1. Сохраните байт[] в файл.

Приведенный ниже пример считывает файл и преобразует данные в байт[] . Позже мы сохраним байт[] в другой файл.

package com.mkyong.io.howto;

import org.apache.commons.io.FileUtils;

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

public class ByteToFile {

    public static void main(String[] args) {

        try {

            // tested with character data and binary data

            // file to bytes[]
            byte[] bytes = Files.readAllBytes(Paths.get("/home/mkyong/test/file.txt"));

            // save byte[] to a file
            writeBytesToFile("/home/mkyong/test/file2.txt", bytes);
            writeBytesToFileNio("/home/mkyong/test/file3.txt", bytes);
            writeBytesToFileApache("/home/mkyong/test/file4.txt", bytes);

            System.out.println("Done");

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

    }

    //JDK 7 - FileOutputStream + try-with-resources
    private static void writeBytesToFile(String fileOutput, byte[] bytes)
        throws IOException {

        try (FileOutputStream fos = new FileOutputStream(fileOutput)) {
            fos.write(bytes);
        }

    }

    //JDK 7, NIO, Files.write
    private static void writeBytesToFileNio(String fileOutput, byte[] bytes)
        throws IOException {

        Path path = Paths.get(fileOutput);
        Files.write(path, bytes);

    }

    // Apache Commons IO
    private static void writeBytesToFileApache(String fileOutput, byte[] bytes)
        throws IOException {

        FileUtils.writeByteArrayToFile(new File(fileOutput), bytes);

    }

}

Скачать Исходный Код

$клон git $клон git

$cd java-ввод-вывод

Рекомендации

Оригинал: “https://mkyong.com/java/how-to-convert-array-of-bytes-into-file/”