Leer un archivo de texto en java no es muy complicado, en resumen es un proceso muy similar a leer texto escrito del teclado, y para hacerlo necesitaremos hacer uso de las siguientes clases, la clase File, FileReader y BufferedReader.
Por favor ve el siguiente vídeo para ver como se lee archivos de texto en java y ver el programa de lectura en ejecución, espero en que te ayude a entender mejor como se leen archivos de texto en java, o si no sigue leyendo este articulo para copiar el codigo fuente directamente y ver el modo de uso.
Video:
A continuación he colocado el método “leer” el cual tiene un parametro llamado “nombre” el cual es el nombre del archivo, en el coloca preferentemente la ruta completa del archivo de texto del cual deseas leer su contenido.
El codigo de lectura es el siguiente:
Descarga:
Clase Archivo.java
Codigo fuente
import java.io.*; public String leer(String nombre) //El parametro nombre indica el nombre del archivo por ejemplo "prueba.txt" { try{ File f; FileReader lectorArchivo; //Creamos el objeto del archivo que vamos a leer f = new File(nombre); //Creamos el objeto FileReader que abrira el flujo(Stream) de datos para realizar la lectura lectorArchivo = new FileReader(f); //Creamos un lector en buffer para recopilar datos a travez del flujo "lectorArchivo" que hemos creado BufferedReader br = new BufferedReader(lectorArchivo); String l=""; //Esta variable "l" la utilizamos para guardar mas adelante toda la lectura del archivo String aux="";/*variable auxiliar*/ while(true) //este ciclo while se usa para repetir el proceso de lectura, ya que se lee solo 1 linea de texto a la vez
{ aux=br.readLine(); //leemos una linea de texto y la guardamos en la variable auxiliar if(aux!=null) l=l+aux+"n"; /*si la variable aux tiene datos se va acumulando en la variable l, * en caso de ser nula quiere decir que ya nos hemos leido todo * el archivo de texto*/ else break; } br.close(); lectorArchivo.close(); return l; }catch(IOException e){ System.out.println("Error:"+e.getMessage()); } return null; }
Modo de uso:
/*simplemente manda a llamar el metodo colocando en su argmento el nombre del archivo*/ leer("C:Usersnombredemipcprueba.txt");
Como resultado leeras el archivo de texto..
¿Problemas con la ruta o Path? Como seleccionar gráficamente un archivo para leerlo
Simplemente con una pequeña modificación a nuestro codigo utilizando la libreria javax.swing con el objeto JFileChooser
Creamos un objeto JFileChooser el cual sirve para elegir graficamente un archivo, lo elegimos y con el codigo acontinuación generaremos una variable tipo String(texto) que contendra ela ruta o el Path completo hacia nuestro archivo, luego solo ejecutamos el metodo “leer”.
javax.swing.JFileChooser j= new javax.swing.JFileChooser(); j.showOpenDialog(j); String path= j.getSelectedFile().getAbsolutePath(); leer(path);
Codigo para leer un archivo de texto gráficamente:
Como nota este método es simple y esta diseñado para leer archivos de texto, leer otro tipo de archivos ocasionara que el programa se cierre.
El codigo es el siguiente:
public String leerGrafico() { File f; javax.swing.JFileChooser j= new javax.swing.JFileChooser(); j.showOpenDialog(j); try{ String path= j.getSelectedFile().getAbsolutePath(); String lectura=""; f = new File(path); try{ FileReader fr = new FileReader(f); BufferedReader br = new BufferedReader(fr); String aux; while((aux = br.readLine())!=null) lectura = lectura+aux+"n"; }catch(IOException e){} return lectura; }catch(NullPointerException e){ javax.swing.JOptionPane.showMessageDialog(j, "Has seleccionado cerrar programa, saliendo..."); System.exit(0); }return null; }
Espero que esto haya servido de algo, para comprender mejor como funciona el programa y verlo en funcionamiento colocare un video en esta página lo mas pronto posible. No olviden comentar.
Hola. muy buen articulo.
consulta
si se modifica el archivo de texto, por ejemplo desde el bloc de notas, en el programa igual se vera el cambio automaticamente o deberé ejecutar nuevamente el programa?
Muchas Gracias Jorge saludos desde Colombia
Desde la consola y usando el JFileChooser funciono sin problemas
Un abrazo !
Buenas Jorge,
he visto que en tu código, cuando guardas el texto en la variable auxiliar haces un +”n”:
l=l+aux+”n”;
No entiendo esa concatenación de la letra n, quizá sería un \n??
Saludos.
Muy buen tutorial, pero el problema es que el archivo para descargar ya no se encuentra, si pudieras actualizarlo, estaría agradecido.
Hola amigo oye una pregunta y después de leer el archivo txt sabes como puedo
separar las palabras que contenga el archivo???
y asi contartas sin signos,espacios,solo las puras palabras??
Quiero Sexo
idiota
De tu culito abiertito
KJKJ
hola jorge v. quisiera saber si tienes alguna idea de como saber cuantas veces los usuarios ejecutan mi aplicación en java, muchas gracias de antemano paisano.
Hola, tengo un proyecto .jar que lo ejecutan mis clientes en sus máquinas locales a través de la JVM, ahora se requiere que el proyecto sea web, que esté alojado en un servidor y que los archivos .txt los carguen los clientes a través del sistema, el cual debe leerlos, validarlos y luego guardarlos en BD. El problema es que el JFileChooser no funciona allí, intenté usar Fileupload pero cuando intento obtener el Path completo Fileupload no lo permite, solo ubica el archivo si éste está en el directorio raíz del cliente y así no me sirve. ¿Qué otra opción tengo?
amigo un saludo desde Colombia. me podrias ayudar en lo siguiente, tengo un programa CENSO que corre con EXECUTABLE JAR FILE. pero quisiera tomar los registros o datos del censo y llevarlos a excel para poderlos filtrar por municipios. el programa tiene un archivo llamado CENSO que es tipo DATA, como hago para ver o exportar la informacion del archivo DATA. mil gracias.
hola me podrias pasae el codigo del programa? xq lo he copiado exactamente igual a tu tutorial pero me sale en consola solamente “NULL” no se xq… me podrias ayudar con eso xfa!!!
Hola.A ver si me puedes hecar una mano.Los datos por consola.
Se trata de hacer una aplicación en Java que gestione los clientes de una empresa. Esos datos, se almacenarán en un fichero serializado, denominado clientes.dat.
Los datos que se almacenarán sobre cada cliente son:
• NIF.
• Nombre.
• Teléfono.
• Dirección.
• Deuda.
Mediante un menú se podrán realizar determinadas operaciones:
• Añadir cliente. Esta opción pedirá los datos del cliente y añadirá el registro correspondiente en el fichero.
• Listar clientes. Recorrerá el fichero mostrando los clientes almacenados en el mismo.
• Buscar clientes. Pedirá al usuario el nif del cliente a buscar, y comprobará si existe en el fichero.
• Borrar cliente. Pedirá al usuario el nif del cliente a borrar, y si existe, lo borrará del fichero.
• Borrar fichero de clientes completamente. Elimina del disco el fichero clientes.dat
• Salir de la aplicación.
Comentarios sobre el desarrollo del programa y las consideraciones oportunas que se necesiten para entender cómo se ha realizado.
Opciones para la creación del programa:
1) Creamos una clase cliente y le ponemos los metodos get y set.
2) Creamos un fichero de la forma: fichero = new FileOutputStream( ruta, true );
3) Creamos un objeto del tipo del fichero: registro = new ObjectOutputStream(fichero); para poder escribir en el fichero el cliente de la forma: registro.writeObject(cliente);
4) Para escribir un cliente en el fichero conviene que leeamos el fichero y lo pasemos a una lista y el cliente en lugar de guardarlo directamente como anteriormente lo metamos en la lista y luego copiamos la lista en el fichero porque si no te escribe en la cabecera del fichero y te lo rompe, lo hacemos así:
List listadelfichero;
listadelfichero = new ArrayList();
fichero = new FileInputStream( ruta );
registro = new ObjectInputStream(fichero);
para leer del fichero: cliente = (Clientes) registro.readObject()
para meterlo en la lista: listadelfichero.add(cliente) ;
Interesante tu programa, pero tengo una consulta si lo que quiero es leer una imagen que esta guardada en PDF y visualizarla en un contenedor en java como seria eso? … si sabes me puedes respondar a mi correo porfa, te lo agradeceria.
Hola mi estimado, excelente codigo para leer archivos en formato txt, me podrias ayudar a implementarlo pero via web primefaces, ?
amigo este programa es muy bueno seria tan amable de pasar otra vez el enlace de la descarga del codigo completo porfavor
Hola jorge oye por favor podrias subir nuevamente el link para descargar el codigo fuente, te lo agradeceria mucho…
Oie tengo una duda cuando corro el programa todo me da bien me deja selecciona el archivo y todo pero cuando lo abro solo me aparese la letra “l” o dependiendo de lo que qe tenga en el sout del main :S no se en que me equivocaria no se si me podrias ayudar
Excelenteee!! Mi problema radica en que mi método tiene que devolver un String []. Me podrías ayudar con eso?
MUCHAS GARCIAS POR LOS TUTORIALES ME HAS SALVADO DE APUROS
me parece interesante me podrias pasar el codigo del formulario que lo muestras al principio el buscador o el video tutorial