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
Lo basico que tienes que saber:
java.io.BufferedReader
//Entrada
java.io.BufferedWriter
//Salida
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();
}
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
Gracias, le intentare y haber que sale ;D
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...
Se almacena en el buffer hasta que se haga flush;
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.
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
Héchale un vistazo ha esto, hay bastantes cosas:
http://www.chuidiang.com/chuwiki/index.php?title=Lectura_y_Escritura_de_Ficheros_en_Java (http://www.chuidiang.com/chuwiki/index.php?title=Lectura_y_Escritura_de_Ficheros_en_Java)
http://www.chuidiang.com/java/novatos/editor/leer_escribir_fichero.php (http://www.chuidiang.com/java/novatos/editor/leer_escribir_fichero.php)
http://www.chuidiang.com/java/novatos/editor/editor.php (http://www.chuidiang.com/java/novatos/editor/editor.php)
http://www.chuidiang.com/chuwiki/index.php?title=B%C3%BAsqueda_de_ficheros (http://www.chuidiang.com/chuwiki/index.php?title=B%C3%BAsqueda_de_ficheros)
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.
Revisa este post, esta de forma muy completa lo que necesitas.
http://todoelmed.blogspot.com/2012/05/manejo-de-archivos-o-ficheros-en.html
Ademas puedes descargar el ejemplo completo.