Foro de elhacker.net

Programación => Java => Mensaje iniciado por: javahat en 12 Diciembre 2009, 17:50 pm



Título: archivo ingresar, buscar txt
Publicado por: javahat en 12 Diciembre 2009, 17:50 pm
Hola necesito por favor que me ayuden...mi problema es el siguiente, estoy realizando con java swing 3 campos "nombre" "apellido" "edad" y los datos debo almacenarlos en un archivo de texto para luego crear un metodo buscar por nombre apellido o edad en el archivo que tiene los datos... pero como puedo crear el archivo y despues buscar... existe alguna estructura o funcion especial saludos...


Título: Re: archivo ingresar, buscar txt
Publicado por: 1mpuls0 en 12 Diciembre 2009, 18:16 pm
Hola

Para crear el archivo puedes usar este metodo

Código
  1. private void GuardarComo(){
  2.  
  3. String texto = "foro.elhacker";
  4.         String nombreArchivo = System.getProperty("user.dir")+"\\Archivo.txt";
  5.         System.out.print(nombreArchivo);
  6. try{
  7.    File file = new File (nombreArchivo);
  8.     FileWriter out = new FileWriter(file);
  9.     String text = texto;
  10.     out.write(text);
  11.     out.close();
  12.     }
  13.   catch (IOException e1) {
  14. System.out.println("No se pudo guardar el archivo " +nombreArchivo);
  15.   }
  16.    }
  17.  
  18.  

Saludos


Título: Re: archivo ingresar, buscar txt
Publicado por: javahat en 12 Diciembre 2009, 18:22 pm
hola gracias por responder, tengo algo pero me dijeron que tambien podia hacerlo con arraylist para despues facilitar la busqueda como podria ser..

cuando lo hago sin arraylist los datos aparece asi cuando apreto el boton de ingresar quedan todos juntos

maria perez 34 jorge lopez 23 ....


Título: Re: archivo ingresar, buscar txt
Publicado por: Leyer en 12 Diciembre 2009, 19:30 pm
hola gracias por responder, tengo algo pero me dijeron que tambien podia hacerlo con arraylist para despues facilitar la busqueda como podria ser..

cuando lo hago sin arraylist los datos aparece asi cuando apreto el boton de ingresar quedan todos juntos

maria perez 34 jorge lopez 23 ....

 :huh:


Título: Re: archivo ingresar, buscar txt
Publicado por: javahat en 12 Diciembre 2009, 19:48 pm
Hola parece que no me exprese bien necesito hacerlo con arraylist pero no se como funciona y despues guardar ese arraylist en un archivo txt .


Título: Re: archivo ingresar, buscar txt
Publicado por: Leyer en 12 Diciembre 2009, 19:53 pm
un arrayList se usa de la siguiente manera
Código
  1. ArrayList<String> arrayList = new ArrayList<String>();
  2.  
  3. arrayList.add("Jonh");
  4.                arrayList.add("Carlos");
  5.                arrayList.add("Mariana");
  6.  
  7. Iterator<String> i = arrayList.iterator();
  8. while(i.hasNext()){
  9. System.out.println(i.next());
  10. }

SL2


Título: Re: archivo ingresar, buscar txt
Publicado por: javahat en 12 Diciembre 2009, 19:55 pm
pero si lo quiere implementar con jtextfield y jbutton, lo que pasa es que cuando lleno los campos y apreto para guardar me guarda o me sobreescribe lo que ya estaba en el archivo.


Título: Re: archivo ingresar, buscar txt
Publicado por: Leyer en 12 Diciembre 2009, 20:14 pm
coloca el code por que esto se esta alargando mas de la cuenta :P


Título: Re: archivo ingresar, buscar txt
Publicado por: javahat en 12 Diciembre 2009, 20:20 pm
pero no funciona necesito ingresar los datos a traves de un jtextfield no asi ya escritos como aparece mas arriba.

he leido tanto foros y nadie sabe como es posible...


Título: Re: archivo ingresar, buscar txt
Publicado por: Leyer en 12 Diciembre 2009, 20:48 pm
si expresas mejor lo tu problema no hay nada que no tenga solucion


Título: Re: archivo ingresar, buscar txt
Publicado por: javahat en 12 Diciembre 2009, 20:53 pm
necesito ingresar a un arraylist el nombre de una persona su edad y fecha de nacimiento, luego los datos deben almacenarse en archivo txt. posteriormente debo ingresar al archivo  o al arraylist ( eso es lo que no se) para buscar por edad o fecha e nacimiento y que me despliegue por pantalla los datos restantes ejemplo:

ingresos:
nombre: pamela
edad: 23
año nac: 1987
nombre: gustavo
edad: 34
año nac: 1981

guardar datos en un archivo txt....

buscar : 23 y que despliegue por pantalla "pamela y 1987".


me faltaba comentar que no se como escribir los datos dentro del txt ya que cuando lleno los campos y apreto el boton para guardar los datos se sobreescriben en el archivo o quedan todos de lado, no hacia abajo


dudas: como el arraylist encadena los datos...?


Título: Re: archivo ingresar, buscar txt
Publicado por: Leyer en 12 Diciembre 2009, 21:35 pm
 para guardar en el archivo sin sobreescribir
Código
  1. try {
  2. BufferedWriter bufferedWriter= new BufferedWriter(
  3. new FileWriter("/home/leyer/n.txt"));
  4. bufferedWriter.append("Jonh 1990 19");
  5. bufferedWriter.flush();bufferedWriter.newLine();
  6. bufferedWriter.append("Maria 1991 18");
  7. bufferedWriter.flush();bufferedWriter.newLine();
  8. } catch (IOException e) {
  9. // TODO Auto-generated catch block
  10. e.printStackTrace();
  11. }

//Buscar por edad y leer

Código
  1. try {
  2. //Buscar y leer
  3. BufferedReader bufferedReader = new BufferedReader(new FileReader("/home/leyer/n.txt"));
  4. String read = " ";
  5. String request = "19"; //Text a buscar
  6. while((read=bufferedReader.readLine()) != null){
  7. if(read.substring(read.lastIndexOf(" ")).trim().equals(request))
  8. System.out.println("-"+read);
  9.  
  10. }
  11. } catch (FileNotFoundException e) {
  12. // TODO Auto-generated catch block
  13. e.printStackTrace();
  14. } catch (IOException e) {
  15. // TODO Auto-generated catch block
  16. e.printStackTrace();
  17. }


Título: Re: archivo ingresar, buscar txt
Publicado por: javahat en 12 Diciembre 2009, 22:04 pm
hola ya lo probe y funciona muy bien pero si yo quisiera buscar en el archivo txt todos los nombres por ejemplo:

roberto 34 1987
carlos   35 1995
roberto 18 1923  

si deseo buscar por el nombre o por la fecha de nacimiento y que me muestre los dos nombres con los datos restantes...?
buscar: roberto
resultado: roberto 34 1987
               roberto 18 1923


try {
         BufferedWriter bufferedWriter= new BufferedWriter(
               new FileWriter("/home/leyer/n.txt"));
         bufferedWriter.append(Jtextfield.getText());
         bufferedWriter.flush();bufferedWriter.newLine();
         bufferedWriter.append("Maria 1991 18");
         bufferedWriter.flush();bufferedWriter.newLine();
      } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }

agregue un getText()  pero me sobreescribe el archivo. es decir despues de apretar el boton para ingresar el dato me sobre escribe los que ya se habian guardado.


Título: Re: archivo ingresar, buscar txt
Publicado por: Leyer en 12 Diciembre 2009, 22:26 pm
tienes que cambiar la ruta es decir en linux es /home/tuUsuario/archivo.txt  en Windows seria C:\archivo.txt.

lo mas seguro es que estas colocando en un ciclo la creacion del
  BufferedWriter bufferedWriter= new BufferedWriter(
               new FileWriter("/home/leyer/n.txt"));

solo tienes que hacer uno en todo el programa y no cada vez que le des guardar.

por fecha de nacimiento modifica el code anterior coloca esto

Código
  1. if(read.substring(read.indexOf(" "),read.lastIndexOf(" ")).trim().equals(request)){ }

Para buscar por nombre

Código
  1. if(read.indexOf("Jonh")!=-1){}


Título: Re: archivo ingresar, buscar txt
Publicado por: javahat en 12 Diciembre 2009, 22:31 pm
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        

        try {
         BufferedWriter bufferedWriter= new BufferedWriter(
               new FileWriter("c:\\archivo.txt"));
         bufferedWriter.append(ingresar.getText());
         bufferedWriter.flush();bufferedWriter.newLine();
         //bufferedWriter.append("Maria 1991 18");
         //bufferedWriter.flush();bufferedWriter.newLine();
      } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }

    }                      

tengo eso cambie la ruta y todo pero necesito apretar el boton para poder ingresar los datos como puedo crear un puro ciclo para hacer el archivo?   


Título: Re: archivo ingresar, buscar txt
Publicado por: Leyer en 12 Diciembre 2009, 23:08 pm
  :P como te dije anteriormente tienes que sacar
   try {
         BufferedWriter bufferedWriter= new BufferedWriter(
               new FileWriter("c:\\archivo.txt"));

de la accion de guardar


Título: Re: archivo ingresar, buscar txt
Publicado por: javahat en 12 Diciembre 2009, 23:10 pm
pero si no puedo sacarlo si no como ingreso los datos al txt.


Título: Re: archivo ingresar, buscar txt
Publicado por: Leyer en 12 Diciembre 2009, 23:19 pm
tienes que colocarlo como variable de instancia en la clase :¬¬


Título: Re: archivo ingresar, buscar txt
Publicado por: javahat en 12 Diciembre 2009, 23:26 pm
tienes que colocarlo como variable de instancia en la clase :¬¬

y como y que es eso estoy super perdido. Lo único que me han dicho es que tengo que programar los botones.


Título: Re: archivo ingresar, buscar txt
Publicado por: 1mpuls0 en 13 Diciembre 2009, 00:12 am
y como y que es eso estoy super perdido.

La verdad he!  :-X

Lo único que me han dicho es que tengo que programar los botones.


Y eso si sabes hacerlo?  :xD

Que estas estudiando?


Título: Re: archivo ingresar, buscar txt
Publicado por: javahat en 13 Diciembre 2009, 00:19 am
Necesito saber como guardar en un archivo distintos campos jtextfield pero sin que se sobreescriba...

registro 1
registro 2
resgistro 3

estudio informatica lamentablemente todos piensan que programar es lo mas facil del mundo, solo me han pasado algunas recomendaciones pero nada en concreto. Mi intencion no es que me hagan la tarea si no comprender como funciona ya he oido muchas veces eso de andar pegando codigos pero no es la idea quiero saber no ser un copiador profesional.


Título: Re: archivo ingresar, buscar txt
Publicado por: 1mpuls0 en 13 Diciembre 2009, 00:41 am
Necesito saber como guardar en un archivo distintos campos jtextfield pero sin que se sobreescriba...

Creo que ya te lo han dicho, o no es eso lo que buscas??

para guardar en el archivo sin sobreescribir
Código
  1. try {
  2. BufferedWriter bufferedWriter= new BufferedWriter(
  3. new FileWriter("/home/leyer/n.txt"));
  4. bufferedWriter.append("Jonh 1990 19");
  5. bufferedWriter.flush();bufferedWriter.newLine();
  6. bufferedWriter.append("Maria 1991 18");
  7. bufferedWriter.flush();bufferedWriter.newLine();
  8. } catch (IOException e) {
  9. // TODO Auto-generated catch block
  10. e.printStackTrace();
  11. }



Lamentablemente algunos piensan que programar es lo mas dificil en el mundo.
Mas bien seria asi.

Bueno depende del vaso como lo veas, medio vacio o medio lleno.

Y quienes son todos? :o, nadie ha dicho algo sobre eso aqui

Saludos


Título: Re: archivo ingresar, buscar txt
Publicado por: javahat en 13 Diciembre 2009, 02:22 am
nop no me sirve por que cuando ingreso el codigo al boton me sobreescribe el archivo que ya tiene datos. lo que ando buscando es como ingresar mas datos y que los grabe a continuacion de los que tengo.


Título: Re: archivo ingresar, buscar txt
Publicado por: Leyer en 13 Diciembre 2009, 02:35 am
 :¬¬ :¬¬ claro que te sirve que no lo sepas implementar es otra cosa


Título: Re: archivo ingresar, buscar txt
Publicado por: javahat en 13 Diciembre 2009, 02:39 am
pero si eso estoy haciendo y no logro hacer que funcione. me sobreescribe el archivo creado anteriormente.


Título: Re: archivo ingresar, buscar txt
Publicado por: Leyer en 13 Diciembre 2009, 02:52 am
si me ubieras colocado el code desde el inicio te lo ubiera solucionado en 2 min asi esto no estubiera asi ademas si no quieres copiar y pegar podria hacerlo y te lo comento para que entiendas el procedimiento eso es lo mas que puedo hacer .por que tu solo asi como asi no podras eso es seguro. ya con todo lo que te he dicho ya es mas que suficiente para solucionar tu problema que no lo veas es por tu falta de conocimiento en el tema.y explicartelo mm ya con lo que dije de "variable de instancia" esa es la clave para la solucion.

SL2


Título: Re: archivo ingresar, buscar txt
Publicado por: javahat en 13 Diciembre 2009, 02:54 am
   private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        
try {
         BufferedWriter bufferedWriter= new BufferedWriter(
               new FileWriter("c:\\archivo.txt"));
         bufferedWriter.append(jtextfield1.getText());
         bufferedWriter.flush();bufferedWriter.newLine();
         bufferedWriter.append(jtextfield2.getText()));
         bufferedWriter.flush();bufferedWriter.newLine();
      } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }


esto esta dentro de un boton, yo cuando aprieto ese boton me guarda lo que ingrese en los jtextfield pero no se como para que ingrese mas datos y no me los sobreescriba en el archivo. estoy con swing java netbeans
    
    }                  


Título: Re: archivo ingresar, buscar txt
Publicado por: javahat en 13 Diciembre 2009, 03:01 am
  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        
try {
         BufferedWriter bufferedWriter= new BufferedWriter(
               new FileWriter("c:\\archivo.txt"));
         bufferedWriter.append(jtextfield1.getText());
         bufferedWriter.flush();bufferedWriter.newLine();
         bufferedWriter.append(jtextfield2.getText()));
         bufferedWriter.flush();bufferedWriter.newLine();
      } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }


esto esta dentro de un boton, yo cuando aprieto ese boton me guarda lo que ingrese en los jtextfield pero no se como para que ingrese mas datos y no me los sobreescriba en el archivo. estoy con swing java netbeans

en el netbeans tengo dos archivos .java un main.java y un jframe.java
    }                  


Título: Re: archivo ingresar, buscar txt
Publicado por: 1mpuls0 en 13 Diciembre 2009, 19:08 pm
Y este??

Código
  1. import java.io.*;
  2.  
  3. public class escribirArchivo
  4. {
  5.    public static void main(String[] args)
  6.    {
  7.        FileWriter archivo= null;
  8.        PrintWriter pw = null;
  9.        try
  10.        {
  11.           archivo= new FileWriter(System.getProperty("user.dir")+"\\elhacker.net.txt", true);
  12.            pw = new PrintWriter(archivo);
  13.  
  14.            for (int i = 0; i < 10; i++)
  15.                pw.println("foro.elhacker " + i);
  16.  
  17.        } catch (Exception e) {
  18.            e.printStackTrace();
  19.        } finally {
  20.           try {
  21.           if (null != archivo)
  22.             archivo.close();
  23.           } catch (Exception e2) {
  24.              e2.printStackTrace();
  25.           }
  26.        }
  27.    }
  28. }
  29.  

saludos


Título: Re: archivo ingresar, buscar txt
Publicado por: efx en 13 Diciembre 2009, 20:05 pm
Y este??

Código
  1. import java.io.*;
  2.  
  3. public class escribirArchivo
  4. {
  5.    public static void main(String[] args)
  6.    {
  7.        FileWriter fichero = null;
  8.        PrintWriter pw = null;
  9.        try
  10.        {
  11.            fichero = new FileWriter(System.getProperty("user.dir")+"\\elhacker.net.txt", true);
  12.            pw = new PrintWriter(fichero);
  13.  
  14.            for (int i = 0; i < 10; i++)
  15.                pw.println("Aprende a usar google " + i);
  16.  
  17.        } catch (Exception e) {
  18.            e.printStackTrace();
  19.        } finally {
  20.           try {
  21.           if (null != fichero)
  22.              fichero.close();
  23.           } catch (Exception e2) {
  24.              e2.printStackTrace();
  25.           }
  26.        }
  27.    }
  28. }
  29.  


saludos

Creo que lo que dice Darhius es correcto...


Código
  1. fichero = new FileWriter(System.getProperty("user.dir")+"\\elhacker.net.txt", true);

o en otro caso algo que vi mas arriva
Código
  1. BufferedWriter bufferedWriter= new BufferedWriter(
  2.               new FileWriter("c:\\archivo.txt",true));/*el argumento true*/
  3.  

Mira que el true que le pasamos como argumento, con esto le decimos
que estamos abriendo el archivo como lectura y escritura, y que ya debe de existir, en caso contrario, lo creara si es la primera vez que corremos el programa, de otro modo todo lo que haya en el archivo lo dejara intacto y solo vendra a aumentar lo que le ingresemos..ja creo que algo asi, ya no recuerdo bien, hace un semestre lleve eso de archivos, como que ahora mi cabeza no esta fresca en eso, pero pues haber si te ayude o te confundi mas  :P

Salu2


Título: Re: archivo ingresar, buscar txt
Publicado por: javahat en 14 Diciembre 2009, 01:49 am
no funciona ya le agregue el true y cuando ingreso nuevamente datos en los campos apreto el boton para guardar me los guarda hacia el lado...


mario 34 1984 maria 45 1923....

que complicado esto de java llevo cerca de dos semanas viendo para que funcione.


Título: Re: archivo ingresar, buscar txt
Publicado por: Leyer en 14 Diciembre 2009, 02:23 am
 :o 2 semanas  :xD :xD  como que te falta mucho  para aprender jeje bueno para lo que dices bufferedWriter.newLine(); para que guardas en forma vertical.


Título: Re: archivo ingresar, buscar txt
Publicado por: javahat en 17 Diciembre 2009, 04:23 am
Gracias por las respuestas la paciencia y la ayuda. Ahora tengo un problema con lenguaje C jajjaja.