Escribe un byte en un archivo en Java

Rupam Yadav 12 octubre 2023
  1. Uso de FileOutputStream para escribir un byte en un archivo en Java
  2. Uso de java.nio.file para escribir un byte en un archivo
  3. Uso de la biblioteca Apache Commons IO para escribir un byte en un archivo en Java
Escribe un byte en un archivo en Java

Este programa demuestra cómo escribir un array de bytes en un archivo en Java. Esta tarea se puede realizar usando FileOutputStream y usando algunas bibliotecas mencionadas en este artículo.

Uso de FileOutputStream para escribir un byte en un archivo en Java

La clase FileOutputStream en Java es un flujo de salida utilizado para escribir datos o flujo de bytes en un archivo. El constructor FileOutputStream(File file) crea un flujo de salida de archivo para escribir en el archivo representado por el objeto File file, que hemos creado en el código siguiente.

La variable s de tipo String se pasa al método getBytes(), que convierte la cadena en una secuencia de bytes y devuelve un array de bytes. El método write() toma el array de bytes como argumento y escribe b.length bytes del array de bytes b en este flujo de salida de archivo.

Se crea un archivo con la extensión .txt en la ruta dada, y si lo abrimos, podemos ver el contenido igual que la cadena almacenada en la variable s.

import java.io.File;
import java.io.FileOutputStream;

public class ByteToFile {
  public static void main(String args[]) {
    File file = new File("/Users/john/Desktop/demo.txt");
    try {
      FileOutputStream fout = new FileOutputStream(file);
      String s = "Example of Java program to write Bytes using ByteStream.";
      byte b[] = s.getBytes();
      fout.write(b);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Uso de java.nio.file para escribir un byte en un archivo

El paquete Java NIO ( New I/O) consta de métodos estáticos que funcionan en archivos, directorios y, sobre todo, funciona en el objeto Path. Path.get() es un método estático que convierte una secuencia de cadenas o una cadena de ruta en una ruta. Simplemente llama a FileSystems.getDefault().getPath().

Por lo tanto, podemos escribir un array de bytes b en un archivo usando el método Files.write() pasando la ruta al archivo y el array de bytes convertida de una cadena.

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[]) {
    Path p = Paths.get("/Users/john/Desktop/demo.txt");
    try {
      String s = "Write byte array to file using java.nio";
      byte b[] = s.getBytes();
      Files.write(p, b);
    } catch (IOException ex) {
      System.err.format("I/O Error when copying file");
    }
  }
}

Uso de la biblioteca Apache Commons IO para escribir un byte en un archivo en Java

La dependencia de maven para esta biblioteca es la que se menciona a continuación.

   <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.6</version>
   </dependency>

La biblioteca Apache Commons IO tiene la clase FilesUtils, tiene el método writeByteArrayToFile(). Este método toma la ruta de destino y los datos binarios que estamos escribiendo. Si nuestro directorio o archivo de destino no existe, se crearán. Si el archivo existe, se truncará antes de escribir.

import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.FileUtils;

public class ByteToFile {
  public static void main(String args[]) {
    {
      File file = new File("doc.txt");
      byte[] data =
          "Here, we describe the general principles of 																									 photosynthesis"
              .getBytes(StandardCharsets.UTF_8);
      try {
        FileUtils.writeByteArrayToFile(file, data);
        System.out.println("Successfully written data to the file");
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }
}

Producción :

Successfully written data to the file
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artículo relacionado - Java Byte

Artículo relacionado - Java File