Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: galoroca2013 en 13 de Enero 2014, 15:56

Título: escribir y leer en ficheros con java FileWriter y FileReader
Publicado por: galoroca2013 en 13 de Enero 2014, 15:56
Hola Cesar buenas tardes nuevamente ¡Felicitaciones! por este foro; yo estoy haciendo dos programa en java de "mensajeria urgente" y otro sobre devolución de cambio. Yo ya tengo realizados los dos programas, sin embargo me hace falta la parte de Leer y Escribir. He copiado los códigos que has dejado aquí y cuando los compilo funcionan perfectamente sin embargo, no sé cómo invocarlos para ver qué es lo que hacen; por otro lado quisiera saber ¿en qué parte de mis programas puedo ingresar este código para que me funcione.

Es de anotar que estoy homolando mi título de Ingeniera de Sistemas aquí en España y no tenía conocimiento alguno de Java, todo lo he aprendido a través de este excelente foro que tienes y buscando información a través de internet.

Bueno Cesar quedo al pendiente de cualquier ayuda que me puedas prestar y muchas gracias por todo.

Olga Rodríguez

P.D. Los programas los tengo hechos en una sola clase porque el profesor me dijo que así se me facilitaria el desarrollo de las prácticas por no tener conocimiento alguno de Java.
Título: Re:escribir y leer en ficheros (archivos) con java
Publicado por: César Krall en 14 de Enero 2014, 09:05
Hola Olga, paso la conversación a un nuevo tema del foro para no mezclar una cosa con otra, desde el nuevo hilo te respondo. Saludos.
Título: Re:escribir y leer en ficheros con java
Publicado por: César Krall en 14 de Enero 2014, 09:18
Para probar este ejemplo de código te indico lo que tienes que hacer:

1) Copia en una clase java este código al que denominamos clase "MenuEscribirLeer" y que es la clase con el método main, es decir, la clase ejecutable

Código: [Seleccionar]
import javax.swing.*;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import java.io.*;

public class MenuEscribirLeer {

    public static void main(String[] args) throws IOException{

        String menu="MENU DE Escribir y Leer\n";
        int n1,n2,n3;
        int op=0;

        menu+="1.  Escribir\n";
        menu+="2.  Leer\n";
        menu+="3.  Fin\n";
        menu+="Escoja Opción:\n";

        while (op!=3){

            op=Integer.parseInt(JOptionPane.showInputDialog(menu));

            switch (op){

                case 1:

                ObjetoEscribir objeto1 = new ObjetoEscribir();
                objeto1.crearCodigoEscribir();

                break;

                case 2:
                ObjetoLeer objeto2 = new ObjetoLeer();
                objeto2.crearCodigoLeer();

                break;

                case 3:

                break;

            }
        }

    } // cierre del  public static void main Ojo !!!! //------------------

    public static void escribir ()throws IOException{
        // TODO code application logic here

        String archivo="nombre.txt";
        FileWriter fw=  new   FileWriter(archivo,true);
        BufferedWriter bw=  new BufferedWriter(fw);     
        PrintWriter  pw= new  PrintWriter (bw);

        String nombre="";     
        int sueldo,edad;
        nombre=JOptionPane.showInputDialog("digite nombre");
        sueldo=Integer.parseInt(JOptionPane.showInputDialog("digite sueldo"));     
        edad=Integer.parseInt(JOptionPane.showInputDialog("digite edad"));     

        pw.println(nombre+"--__--"+sueldo+"--__--"+edad+"--__--");

        JOptionPane.showMessageDialog(null,"los datos se guardaron EXCELENTE");
        pw.close();

    }
}

2) Copia en una clase este código al que denominamos clase ObjetoEscribir y que es la que permite escribir datos a un archivo

Código: [Seleccionar]
import javax.swing.*;
import java.io.*;

public class ObjetoEscribir {

    public void crearCodigoEscribir() throws IOException {
        // TODO code application logic here (algoritmo que escribe archivo)

        String archivo="nombre.txt";
        FileWriter fw=  new   FileWriter(archivo,true);
        BufferedWriter bw=  new BufferedWriter(fw);     
        PrintWriter  pw= new  PrintWriter (bw);

        String nombre="";     
        int sueldo,edad;
        nombre=JOptionPane.showInputDialog("digite nombre");
        sueldo=Integer.parseInt(JOptionPane.showInputDialog("digite sueldo"));     
        edad=Integer.parseInt(JOptionPane.showInputDialog("digite edad"));     

        pw.println(nombre+"--__--"+sueldo+"--__--"+edad+"--__--");

        JOptionPane.showMessageDialog(null,"los datos se guardaron EXCELENTE");
        pw.close();

    }
}

3) Copia en una clase java este código al que denominamos clase ObjetoLeer y que es la que permite leer datos desde el archivo

Código: [Seleccionar]
import javax.swing.*;
import java.io.*;

public class ObjetoLeer {

    public void crearCodigoLeer() throws IOException {

        // TODO code application logic here (algoritmo que lee archivo)

        FileReader fr = new FileReader("nombre.txt");
        BufferedReader br=  new BufferedReader(fr);
        String linea="";
        linea=br.readLine();
        while(linea!=null){
            String vector[]= linea.split("--__--");
            JOptionPane.showMessageDialog(null,"Nombre"+vector[0]+"\nsueldo1:"+vector[1]+"\nsueldo1:"+vector[2]);
            linea=br.readLine();

        }
    }
}

4) Para ver cómo funciona, ejecuta (invoca el método main) de la clase MenuEscribirLeer. Cuando lo hagas te aparecerá un menú que te da las opciones 1. Escribir, 2. Leer y 3. Fin. Elegimos escribir y ponemos como nombre Jose, como sueldo 500 y como edad 33. Debe aparecer un mensaje "Los datos se guardaron". Ahora elegimos otra vez escribir y ponemos como datos paco, 233, 53.

En el mismo directorio donde tengamos los archivos java se habrá creado un archivo denominado "nombre.txt" que contendrá esta información:


Jose--__--500--__--33--__--
paco--__--233--__--53--__--

Donde los símbolos --__-- son símbolos delimitadores.

Ahora si elegimos en el menú "Leer" nos mostrará los datos existentes en el archivo.

Aquí tienes de forma aproximada la lógica para manejar archivos de texto, intenta probarlo a ver si te sale. Saludos!