Cómo crear un archivo y escribir datos en él en Java

Hassan Saeed 12 octubre 2023
  1. PrintWriter para crear un archivo en Java
  2. java.nio.file para crear un archivo en Java
  3. BufferedWriter para crear un archivo en Java
  4. FileWriter para crear un archivo en Java
Cómo crear un archivo y escribir datos en él en Java

Este tutorial trata sobre los métodos para crear un archivo de texto y escribir datos en él en Java.

Java tiene múltiples métodos para crear un archivo. Lo único que hay que recordar es que el bloque try-catch es necesario para casi todos los métodos de creación de archivos para que cualquier excepción IO sea manejada con gracia. No olvides usarlo.

PrintWriter para crear un archivo en Java

El PrintWriter en Java permite crear un nuevo archivo con la codificación especificada. Aquí hay un ejemplo.

import java.io.*;

public class Main {
  public static void main(String[] args) {
    String fileName = "my-file.txt";
    String encoding = "UTF-8";
    try {
      PrintWriter writer = new PrintWriter(fileName, encoding);
      writer.println("The first line");
      writer.println("The second line");
      writer.close();
    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();
    }
  }
}

java.nio.file para crear un archivo en Java

También podemos usar java.nio.file para crear un archivo y escribir datos en él. El siguiente ejemplo ilustra este enfoque.

import java.io.*;
import java.nio.charset.*;
import java.nio.file.*;
import java.util.*;

public class Main {
  public static void main(String[] args) {
    String fileName = "my-file.txt";
    try {
      List<String> lines = Arrays.asList("The first line", "The second line");
      Path file = Paths.get(fileName);
      Files.write(file, lines, StandardCharsets.UTF_8);
    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();
    }
  }
}

En este ejemplo, escribimos los datos de una ArrayList en el archivo de tal manera que cada elemento de la ArrayList se escribe en una nueva línea en el archivo de salida. El archivo de salida tiene este aspecto:

> The first line
> The second line

BufferedWriter para crear un archivo en Java

El siguiente ejemplo ilustra la creación y escritura de un archivo utilizando BufferedWriter.

import java.io.*;
import java.nio.charset.*;
import java.util.*;

public class Main {
  public static void main(String[] args) {
    Charset utf8 = StandardCharsets.UTF_8;
    List<String> list = Arrays.asList("This is the first line", "This is the second line");
    String content = "This is my content";

    try {
      // File name with path
      String fileName = "my-file.txt";
      File myFile = new File(fileName);
      FileOutputStream fos = new FileOutputStream(myFile);
      OutputStreamWriter osw = new OutputStreamWriter(fos);
      Writer writer = new BufferedWriter(osw);
      // Write data using a String variable
      writer.write(content + "\n");

      // Write data from an ArrayList
      for (String s : list) {
        writer.write(s + "\n");
      }

    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();
    }
  }
}

El archivo de salida se ve así:

> This is my content
> This is the first line
> This is the second line

FileWriter para crear un archivo en Java

Otro método común para crear un nuevo archivo y escribir en él en Java es usar FileWriter.

import java.io.*;

public class Main {
  public static void main(String[] args) {
    try {
      FileWriter myWriter = new FileWriter("my-file.txt");
      myWriter.write("We can also create a file and write to it using FileWriter");
      myWriter.close();
    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();
    }
  }
}

El archivo de salida se ve así:

> We can also create a file and write to it using FileWriter

Artículo relacionado - Java File