Programa Java para convertir archivos en una array de bytes

Aquí, veremos las diferentes formas de convertir un archivo a una array de bytes en Java.

Nota: mantenga un control antes de hacer algo primero. Cree un archivo en el repositorio del sistema para tratar con nuestro programa\escribiendo un programa ya que accederemos al mismo directorio a través de nuestros programas.

Métodos:

  1. Usando el método de lectura (byte []) de la clase FileInputStream
  2. Usando el método Files.readAllBytes() 

Método 1: usar el método de lectura (byte []) de la clase FileInputStream 

FileInputStream es útil para leer datos de un archivo en forma de secuencia de bytes. FileInputStream está diseñado para leer flujos de bytes sin procesar, como datos de imágenes. Para leer secuencias de caracteres, considere usar FileReader . método read(byte[]) de la clase FileInputStream que lee hasta la longitud del archivo y luego convierte los bytes de datos de este flujo de entrada en la array de bytes.

Procedimiento:

  1. Cree una instancia de File Input Stream con la ruta del archivo.
  2. Cree una array de bytes de la misma longitud que el archivo.
  3. Lea el contenido de ese archivo en una array.
  4. Imprime la array de bytes.
  5. Cierre la instancia del flujo de entrada del archivo, ya que es una buena práctica para evitar que se enfrente cualquier excepción o error durante el tiempo de ejecución y para liberar los recursos de memoria, lo que optimiza nuestro programa y conduce a una ejecución más rápida.

Implementación: para ilustrar la conversión de un archivo de texto presente en el directorio local en una máquina a la array de bytes, consideraremos un archivo aleatorio llamado ‘demo.rtf’ que está presente en el directorio local. 

Ejemplo:

Java

// Java Program to Convert File to a Byte Array
// Using read(byte[]) Method
  
// Importing required classes
import java.io.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Arrays;
  
// Main class
public class GFG {
  
    // Method 1
    // To convert file to byte array
    public static byte[] method(File file)
        throws IOException
    {
  
        // Creating an object of FileInputStream to
        // read from a file
        FileInputStream fl = new FileInputStream(file);
  
        // Now creating byte array of same length as file
        byte[] arr = new byte[(int)file.length()];
  
        // Reading file content to byte array
        // using standard read() method
        fl.read(arr);
  
        // lastly closing an instance of file input stream
        // to avoid memory leakage
        fl.close();
  
        // Returning above byte array
        return arr;
    }
  
    // Method 2
    // Main driver method
    public static void main(String[] args)
        throws IOException
    {
  
        // Creating an object of File class and
        // providing local directory path of a file
        File path = new File(
            "/Users/mayanksolanki/Desktop/demo.rtf");
  
        // Calling the Method1 in main() to
        // convert file to byte array
        byte[] array = method(path);
  
        // Printing the byte array
        System.out.print(Arrays.toString(array));
    }
}

 Producción:

Método 2: Usar el método readAllBytes() de la clase Files 

La clase java.nio.file.Files tiene un método readAllBytes() predefinido que lee todos los bytes de un archivo.

Procedimiento: 

  1. Tomar una ruta de archivo de texto
  2. Convierta ese archivo en una array de bytes llamando a Files.readAllBytes().
  3. Imprime la array de bytes.

Ejemplo:

Java

// Java Program to Convert File to a Byte Array
// Using Files.readAllBytes() Method
  
// Importing required classes
import java.io.*;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
  
// Main class
public class GFG {
  
    // Main driver method
    public static void main(String[] args)
        throws IOException
    {
  
        // Creating an object of Path class and
        // assigning local directory path of file to it
        Path path = Paths.get(
            "/Users/mayanksolanki/Desktop/demo.rtf");
  
        // Converting the file into a byte array
        // using Files.readAllBytes() method
        byte[] arr = Files.readAllBytes(path);
  
        // Printing the above byte array
        System.out.println(Arrays.toString(arr));
    }
}

Producción: 

Publicación traducida automáticamente

Artículo escrito por manastole01 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *