archivo ingresar, buscar txt

Iniciado por javahat, 12 Diciembre 2009, 17:50 PM

0 Miembros y 1 Visitante están viendo este tema.

javahat

#10
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...?

Leyer

para guardar en el archivo sin sobreescribir
Código (java) [Seleccionar]
try {
BufferedWriter bufferedWriter= new BufferedWriter(
new FileWriter("/home/leyer/n.txt"));
bufferedWriter.append("Jonh 1990 19");
bufferedWriter.flush();bufferedWriter.newLine();
bufferedWriter.append("Maria 1991 18");
bufferedWriter.flush();bufferedWriter.newLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


//Buscar por edad y leer

Código (java) [Seleccionar]
try {
//Buscar y leer
BufferedReader bufferedReader = new BufferedReader(new FileReader("/home/leyer/n.txt"));
String read = " ";
String request = "19"; //Text a buscar
while((read=bufferedReader.readLine()) != null){
if(read.substring(read.lastIndexOf(" ")).trim().equals(request))
System.out.println("-"+read);

}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


javahat

#12
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.

Leyer

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 (java) [Seleccionar]
if(read.substring(read.indexOf(" "),read.lastIndexOf(" ")).trim().equals(request)){ }

Para buscar por nombre

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

javahat

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?   

Leyer

  :P como te dije anteriormente tienes que sacar
   try {
         BufferedWriter bufferedWriter= new BufferedWriter(
               new FileWriter("c:\\archivo.txt"));

de la accion de guardar

javahat

pero si no puedo sacarlo si no como ingreso los datos al txt.

Leyer

tienes que colocarlo como variable de instancia en la clase :¬¬

javahat

Cita de: L-EYER en 12 Diciembre 2009, 23:19 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.

1mpuls0

Cita de: javahat en 12 Diciembre 2009, 23:26 PM
y como y que es eso estoy super perdido.

La verdad he!  :-X

Cita de: javahat en 12 Diciembre 2009, 23:26 PM
Lo único que me han dicho es que tengo que programar los botones.


Y eso si sabes hacerlo?  :xD

Que estas estudiando?
abc