Manejar archivo .txt desde java (ingresar datos, modificar datos, buscar datos y

Iniciado por chuystoty, 2 Junio 2010, 06:02 AM

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

chuystoty



Saludos, hace unos días se me presento crear un programa en java que pueda acceder a un archivo txt. Y realice las siguientes parámetros, que pueda acceder al archivo y pueda ingresar datos, modificar datos, buscar datos y la eliminación de datos, todo con vista grafica.

Poseo conocimientos sobre programación en java pero nunca he hecho un programa con las características anteriores. Si alguien podría guiarme en este trabajo lo agradecería bastante, gracias por su tiempo. 

:D

Leyer

Lo basico que tienes que saber:

java.io.BufferedReader //Entrada
java.io.BufferedWriter   //Salida

   
Código (java) [Seleccionar]
try {
//Escritura
java.io.BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("Archivo.txt"));
bufferedWriter.append("Esto es la linea 1");
bufferedWriter.flush();
bufferedWriter.newLine();
bufferedWriter.append("Esto es la linea 2");
bufferedWriter.flush();

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



      
Código (java) [Seleccionar]
try {
//Entrada
BufferedReader bufferedReader = new BufferedReader(new FileReader("Archivo.txt"));
//Buscar si existe una palabra
String line = "";
while((line = bufferedReader.readLine())!=null){
                             System.out.println(line);
if(line.indexOf("Palabra")!= -1){
System.out.println("Encontrado line: "+line);
}
}
} catch (FileNotFoundException e) {e.printStackTrace();
} catch (IOException e) {e.printStackTrace();
}


Para eliminar un registro etc.. tienes que guardar los datos del txt en tu programa, una vez guardados, buscas lo que vas a eliminar y lo eliminas,luego abres el buffer de escritura y escribes los nuevos datos del archivo





kinos

que pasa si no haces el "bufferedWriter.flush();" ?
Quiero decir, si escribes 2 millones de cosas... ¿se quedan en el buffer? o se vacía solo el buffer cuando se llena y lo vuelca al archivo...

Leyer


kinos

He estado haciendo pruebas y he llegado a la conclusión de que es muchísimo más efectivo sin usar el "flush()".

He insertado 90.000.000 veces un String de 84 caracteres en un archivo haciendo flush() y otra sin flush():

   -con flush(): RAM inicial = 510 MiB, RAM final = 567 MiB -> diferencia = 57 MiB
                     total time: 10 minutes 21 seconds

   -sin flush():  RAM inicial = 532 MiB, RAM final = 596 MiB -> diferencia = 64 MiB
                     total time: 1 minutes 44 seconds

Pensaba que se petaría la Ram pero no es así, el BufferedWriter se debe de vaciar cuando tiene lo suficiente para escribir en el archivo.
La diferencia de Ram suele oscilar entre los 25 o 20 MiB mas o menos.

chuystoty

CitarLo basico que tienes que saber:

Publicado por: LEYER

Código:

java.io.BufferedReader

//Entrada
Código:

java.io.BufferedWriter

  //Salida

   
Código

   try {
         //Escritura
         java.io.BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("Archivo.txt"));
         bufferedWriter.append("Esto es la linea 1");
         bufferedWriter.flush();
         bufferedWriter.newLine();
         bufferedWriter.append("Esto es la linea 2");
         bufferedWriter.flush();

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



     
Código

try {
         //Entrada
         BufferedReader bufferedReader = new BufferedReader(new FileReader("Archivo.txt"));
         //Buscar si existe una palabra
         String line = "";
         while((line = bufferedReader.readLine())!=null){
            if(line.indexOf("Palabra")!= -1){
               System.out.println("Encontrado line: "+line);
            }
         }
      } catch (FileNotFoundException e) {e.printStackTrace();
      } catch (IOException e) {e.printStackTrace();
      }


Para eliminar un registro etc.. tienes que guardar los datos del txt en tu programa, una vez guardados, buscas lo que vas a eliminar y lo eliminas,luego abres el buffer de escritura y escribes los nuevos datos del archivo


Esta información ha sido de ayuda pero para mala fortuna mía, aun no entiendo bien como crear este programa con los parámetros dichos al principio, agradecería mas ayuda en código o bien algún manual que recomienden donde pueda conocer mas y poder crear este programa   


metalrocksita

Yo quisiera saber...como crear una clase Visualizar Archivo ?? quién tenga una idea, se lo agradecería mucho...es lo único que me falta para terminar mi programa. Saludos.

ELMED