Buscar y Abrir Archivos (JFileChooser - Java)

En ocasiones requerimos que el usuario de la aplicación busque y abra un archivo que se encuentra en su pc, para este caso tenemos el cuadro de dialogo JFileChooser de la API de Java, el mismo muestra un cuadro de búsqueda donde se puede buscar y seleccionar el o los archivos deseados de manera cómoda para el usuario y para el programador de la aplicación. 

Primero creamos una GUI en una aplicación java simplemente añadiremos un botón para iniciar el cuadro de búsqueda jfilechooser, una etiqueta para mostrar el archivo que abrimos y una caja de texto multi-línea para mostrar el contenido del archivo.

abrir archivo
Seguido vamos a establecer la acción del botón abrir, en la vista diseño damos clic derecho sobre el botón, seleccionamos la opción Events > Action > actionPerformed  vamos al código generado para manejar el evento.

Escribimos el código para crear y abrir el JFileChooser, prestemos atención a JFileChooser.FILES_AND_DIRECTORIES, este indica que deseamos abrir tanto archivos como carpetas, usaremos FILES_ONLY para solamente abrir archivos y  DIRECTORIES_ONLY para carpetas, showOpenDialog muestra el cuadro de búsqueda y nos indica atreves de su valor devuelto que ha hecho el usuario, por ejemplo si cancelo la selección.

// muestra el cuadro de diálogo de archivos, para que el usuario pueda elegir el archivo a abrir
JFileChooser selectorArchivos = new JFileChooser();
selectorArchivos.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

// indica cual fue la accion de usuario sobre el jfilechooser
int resultado = selectorArchivos.showOpenDialog(this);

jfilechooser java
Comprobamos que el usuario no ha cancelado, obtenemos el objeto File que representa el archivo seleccionado por el usuario, verificamos que se haya seleccionado un archivo valido, luego leemos el contenido y lo mostramos en la caja de texto.

File archivo = selectorArchivos.getSelectedFile(); // obtiene el archivo seleccionado

// muestra error si es inválido
if ((archivo == null) || (archivo.getName().equals(""))) {
 JOptionPane.showMessageDialog(this, "Nombre de archivo inválido", "Nombre de archivo inválido", JOptionPane.ERROR_MESSAGE);
} // fin de if

jlArchivo.setText(archivo.getAbsolutePath());
Scanner scn = new Scanner(archivo);
while (scn.hasNext()) {
 jtaContenido.insert(scn.nextLine() + "\n", jtaContenido.getText().length());
}

buscar abrir archivo java
Nuestro cuadro de búsqueda muestra todos los archivos disponibles, pero podemos indicarle que solo deseamos localizar un tipo especifico de archivos, para indicarle que solo deseamos abrir archivos .java usamos la clase FileNameExtensionFilter en su constructor indicamos la descripción del tipo de archivo que abriremos y la extensión del mismo.

FileNameExtensionFilter filtro = new FileNameExtensionFilter("Archivos Java", "java");
selectorArchivos.setFileFilter(filtro);

Otra de las modificaciones que podemos hacer es indicar el tipo de JFileChooser pues este se puede usar tanto para abrir como para guardar un archivo, en el ultimo caso nos selectorArchivos nos devolvería la ruta donde deseamos almacenar el archivo, para cambiar el tipo usamos:  selectorArchivos.setDialogType(JFileChooser.OPEN_DIALOG);  para abrir SAVE_DIALOG para guardar, CUSTOM_DIALOG para uno personalizado.

Comentarios

Publicar un comentario

Temas relacionados

Entradas populares de este blog

tkinter Grid

Controles y Contenedores JavaFX 8 - I

Conectar SQL Server con Java

Histogramas OpenCV Python