Como vimos en la entrada anterior, utilizamos el selector de archivos predeterminado de Java (JFileChooser) para poder guardar caracteres que escribiamos dentro de un área de texto (TextArea), todo esto dentro de un método.
El proceso para abrir un archivo utilizando el "JFileChooser" es muy parecido al de guardar, pero tiene pequeñas líneas de código que se utilizan de otra manera. También se manejara el uso y captura de excepciones, siempre es bueno recordarlo porque a muchos les pasa que se les olvida colocarlo en el código y luego ocurren las "catástrofes".
Podemos dejar el link del ejemplo anterior abierto en una ventana o pestaña y este en otra, o copiarlo en algún editor de texto o de una vez en el programa que utilizamos para compilar. Si hacemos esto es más fácil leer cada línea que voy explicando y compararla con la del ejemplo, para ver las diferencias que hay entre el de arbrir y guardar.
void abrir() { try { String nombre=""; String TEXTO JFileChooser MI_ARCHIVO=new JFileChooser(System.getProperty("user.dir")); MI_ARCHIVO.showOpenDialog(this); File ABRIR=MI_ARCHIVO.getSelectedFile(); if(ABRIR != null) { nombre=MI_ARCHIVO.getSelectedFile().getName(); VARIABLE_DEL_TEXT_AREA.setText(""); FileReader FICHERO=new FileReader(ABRIR); BufferedReader LEER=new BufferedReader(FICHERO); while((TEXTO=LEER.readLine()) != null) { VARIABLE_DEL_TEXT_AREA.append(TEXTO+ "\n"); //append Concatena la linea leida } LEER.close(); } } catch(FileNotFoundException exp) { JOptionPane.showMessageDialog(null, "El archivo no existe o no se"+ "encuentra en esta carpeta.","Error", JOptionPane.WARNING_MESSAGE); } catch(Exception exp) { System.out.println(exp); } }
Al igual que en todas las entradas que publico, siempre doy la explicación de lo que significa cada cosa que hay en el código, pero como en la entrada de "Guardar un Area de Texto (JFileChooser)" ya hemos públicado gran parte del código que usaremos, solo explicare las nuevas líneas que debemos agregar y las cosas más importantes.
- String nombre="" / String TEXTO=""
Son variables del tipo caracter, las cuales seran utilizadas por el método mas adelante.
- VARIABLE_DEL_TEXT_AREA.setText("")
Esto setea o coloca en blanco el "TextArea". ".setText" hace que se escriba en el área de texto lo que hay entre comillas, y como lo que queremos es dejar en blanco el área de texto para que se escriba lo que hay en el archivo que vamos a abarir, dejamos las comillas en blanco.
- FileReader FICHERO=new FileReader(ABRIR)
En el ejemplo de guardar, utilizamos una variable del tipo escritura que era "FileWriter", en este caso, usaremos una del tipo lectura que es "FileReader", se utiliza de la misma forma que "FileWriter".
- BufferedReader LEER=new BufferedReader(FICHERO)
Creamos una variable llamada "LEER" del tipo lectura (BufferedReader), la cual sera una instancia de la variable "FICHERO".
- while((TEXTO=leer.readLine()) != null)
En la variable "TEXTO" se almacenara lo que la variable "LEER" capture, esto se logra colocando esto: TEXTO=LEER.readLine(). Y mientras esto sea distinto de un valor nulo seguira con el resto del código.
- VARIABLE_DEL_TEXT_AREA.append(TEXTO+ "\n")
".append" conecta la línea leida anteriormente. Luego se escribira en el "TextArea" lo que se almaceno dentro de la variable "TEXTO", que es del tipo "String", y "\n" le indica al programa que comenzara a escribir a partir de la siguiente línea.
- catch(FileNotFoundException exp)
En caso de que se produzca una excepción del tipo "FileNotFound", la capturamos y almacenamos en la variable "exp". Esta es una excepción muy peculiar, si analizamos e interpretamos, "FileNotFoundException" significa "Excepción: Archivo No Encontrado". Luego de esta excepción tenemos otra del tipo general.
Aqui no estoy explicando todo el código, ya que la mayor parte de el fue explicada en la entrada anterior, también podemos notar que he cambiado el nombre de algunas de las variables, como por ejemplo la variable "File", en el ejemplo anterior es llamada "GUARDAR" pero en este es llamada "ABRIR", pero la forma en que se utilizan es la misma.
También podemos notar que utilizamos dos "catch" y un solo "try", esto es lo explicaba en la entrada de excepciones, que lo ideal seria manejar cualquier excepción de un tipo específico para tener un código mas eficiente y evitar las excepciones generales, aunque siempre las uso en caso de que se me pase uno que otro error.
Este método que he explicado de abrir, no aplica solo a áreas de texto, sino que aplica para cualquier tipo de archivo, por ejemplo, podemos abrir un archivo "mp3" desde el selector de archivos predeterminado de Java, solo que hay que saber como manejar dicho archivo, es decir, la parte de abrir es la misma, pero en vez de utilizar un "TextArea" utilizaria otro tipo de variable que pueda almacenar audio.
Recibe notificaciones por correo