Seguidores

MIS WEBS



miércoles, 18 de abril de 2018

Leer y escribir archivos externos con un Buffer o filtro en java


 Buffer o filtro de java

El ejemplo visto antes de copiar archivos de texto sería muy lento si tuviéramos un texto muy extenso dado que el programa tiene que ir Haciendo una conexión al archivo por cada letra. Para archivo grandes se han creado los buffer.

¿Qué es un Buffer?

Es un archivo de transición entre java y el archivo donde copia o pega. Se genera un espacio en la memoria interna entre el programa y su copia.  La información del archivo se volcará en el buffer y java accederá al bufer para cargar o descargar la información poco a poco.
Si existen microcortes con el programa externo no se caerá nuestro programa de java al estar tirando del buffer en lugar del programa en sí.


Como crear  un buffer

Leer un texto

Para generan un buffer necesitaremos la clase BufferdReader y su método readLine().
El método readLine() leera línea a línea nuestro archivo en lugar de letra a letra como hacíamos hasta el momento.
El método readLine cuando llegue al final de la última línea nos regresará un null
Cuando llegue al final de una línea nos regresará \n o \r


Lo primero creamos nuestro instancia a BufferedReader y le pasamos por parámetros el FileReader que creamos en anterior ejercicio.


public void leenos() {
             FileReader texto; BufferedReader intermedio;
             try {//abrimos comunicación (Stream)
texto = new FileReader("C:\\Users\\dagip\\Desktop\\c/Prueba lectura.txt");
                    intermedio= new BufferedReader (texto)
                    }
                    //cerramos archivo
                    texto.close();

             } catch (IOException e) {
                   
System.out.println("Mira si el archivo se encuentra en su sitio porque yo no lo veo");
                    e.printStackTrace();
             }

O lo que es lo mismo
intermedio= new BufferedReader (new FileReader("C:\\Users\\c\\Desktop\\c/Prueba lectura.txt"));


Una vez creado nuestro buffer lo recorremos

       public void leenos() {
        BufferedReader intermedio;
             try {//abrimos comunicación (buffer)
                   
intermedio= new BufferedReader (new FileReader("C:\\Users\\c\\Desktop\\c/Prueba lectura.txt"));
                    String text_linea="";
                    while(text_linea!= null) {
                           text_linea = intermedio.readLine();
                           System.out.println(text_linea);
                    }
             } catch (IOException e) {
                   
System.out.println("Mira si el archivo se encuentra en su sitio porque yo no lo veo");
                    e.printStackTrace();
             }
       }


Si no deseamos que escriba la línea vacía:

if (text_linea != null)System.out.println(text_linea); //si un if tiene tan solo una línea no necesita corchetes{….}




Escribir un texto

Para generan un buffer necesitaremos la clase BufferWriter y su método write().

public void CrearArchivoEscrito(){
      
String TEXTO = ("Este texto aparecerá en el nuevo archivo si todo lo hice bien");
             FileWriter archivoTexto; BufferedWriter Archivo_leido;
             try {
Archivo_leido =new BufferedWriter( new FileWriter("C:\\Users\\s\\v\\x/esto se creo por java.txt"));
                           Archivo_leido.write(TEXTO);
              } Archivo_leido.close();//CERRAMOS ARCHIVO
catch (IOException e) {
                    e.printStackTrace();
             }
            
       }

Copiar un archivo y pegarlo en otro


Utilizando lo aprendido hasta ahora podemos copiar un archivo y pegarlo en otro:

public void leenos() {
        BufferedReader intermedio;BufferedWriter Archivo_leido;
             try {//abrimos comunicación (Stream)          
intermedio= new BufferedReader (new FileReader("C:\\Users\\x\\Desktop\\s/Prueba lectura.txt"));
Archivo_leido =new BufferedWriter( new FileWriter("C:\\Users\\d\\Desktop\\x/esto se creo por java.txt"));
                    String text_linea="";
                    while(text_linea!= null) {
                           text_linea = intermedio.readLine();
if (text_linea != null)Archivo_leido.write(text_linea + "\r");     
}intermedio.close(); Archivo_leido.close();  //cerramos el buffer
             } catch (IOException e) {
System.out.println("Mira si el archivo se encuentra en su sitio porque yo no lo veo");
                    e.printStackTrace();
             }
       }
}


Si te gusta el articulo continua👉
Si te gusta este articulo dale al 👍

No hay comentarios:

Publicar un comentario

Buscar este blog

Sandisk y Western Digital