Manejo de archivos
La lectura y escritura de archivos es una de las funcionalidades que ha proveído Java desde sus inicios, siendo mejorada tras sus diversas versiones
Escribir en un archivo de texto
En el siguiente ejemplo se ingresará un texto por consola y luego se almacenará en un archivo txt llamado datos.txt que se creará en la ruta especificada. Cada vez que se ejecute el programa se reescribirá el valor del texto como si se creara una nuevo.
package test;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class WriteTxt {
public static void main(String[] args) {
// Captura de datos
Scanner s = new Scanner(System.in);
System.out.println("Ingrese un texto y luego ENTER...");
String texto = s.nextLine();
try {
//Creación del archivo
FileWriter fw = new FileWriter("/media/jhon/Disco/Documentos/datos.txt");
//Creación del buffer para escritura
try (BufferedWriter bw = new BufferedWriter(fw)) {
bw.write(texto);
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
} catch (IOException e) {
System.err.println("Error: " + e.getMessage());
}
}
}
Añadir texto
Si se desea agregar texto sin reemplazar el original, se debe indicar en el objeto de tipo FileWriter como segundo parámetro el valor lógico TRUE. Además, en el cuerpo del buffer de escritura se añade previo al texto un salto de línea.
package test;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class WriteTxt {
public static void main(String[] args) {
// Captura de datos
Scanner s = new Scanner(System.in);
System.out.println("Ingrese un texto y luego ENTER...");
String texto = s.nextLine();
try {
//Se indica TRUE para añadir texto en lugar de reemplazar
FileWriter fw = new FileWriter("/media/jhon/Disco/Documentos/datos.txt",true);
//Creación del buffer para escritura
try (BufferedWriter bw = new BufferedWriter(fw)) {
bw.write("\n"); //Se agrega un salto de línea
bw.write(texto);
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
} catch (IOException e) {
System.err.println("Error: " + e.getMessage());
}
}
}