domingo, 13 de diciembre de 2020

Escritura en archivos

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());
        }        

    }
}

No hay comentarios:

Publicar un comentario