Академический Документы
Профессиональный Документы
Культура Документы
Conocimientos Previos
En este punto es conveniente recordar el concepto de flujo y las diferencias de su
manejo según las clases java que se utilicen. Hasta el momento hemos utilizado la
fuente estándar (System.in -- teclado) y el destino (System.out -- pantalla), con la
siguiente secuencia de creación de objetos de las clases necesarias del paquete java.io.
Java nos ofrece la clase FILE que permite crear instancias asociadas con el
nombre de un archivo, no con su contenido, pero que facilita el manejo de directorios y
de archivos en los subdirectorios, cambiar nombres, verificar existencia de archivos, etc,
como ejemplo tenemos:
Metodo Propósito
boolean exists() Verifica existencia del archivo
boolean isFile() Verifica si es un archivo
boolean isDirectory() … o un directorio
String[] list() Retorna nombres de archivos y directorios
String getName() Devuelve nombre de un directorio o archivo
String getPath() Devuelve la ruta o path de un archivo o directorio
Diego Santimateo G.
CRUV-FIEC
Programación Orientada a Objetos
Con FileReader creamos un objeto para asociar el nombre lógico del archivo con
su nombre físico o contenido. El constructor de FileReader puede aceptar un objeto de
la clase File o un nombre de archivo capturado o leído de otro archivo.
import java.io.*;
import javax.swing.*;
public class LeeconReader {
public static void main(String[] args) {
String archivoName;
archivoName = JOptionPane.showInputDialog(null, "Indique nombre de archivo:");
try {
FileReader arch1 = new FileReader(archivoName);
BufferedReader in = new BufferedReader(arch1);
String s = new String();
try {
in.close();
}
catch ( IOException e )
{
System.err.println( "El archivo no se pudo cerrar correctamente" );
System.exit( 1 );
}
} //fin main
} // fin de la clase LeeconReader
Diego Santimateo G.
CRUV-FIEC
Programación Orientada a Objetos
Revise cuidadosamente y pruebe el programa con los archivos utilizados en el ejemplo
anterior.
/* Ejemplo de programa que lee un archivo secuencial con el método readLine de la clase BufferedReader*/
import java.io.*;
public class LeeNumeroRegistro{
public static void main(String[] args) throws Exception{
File file = null;
FileReader freader = null;
LineNumberReader lnreader = null; //tiene el método readLine
try{
file = new File("dato.txt");
freader = new FileReader(file);
lnreader = new LineNumberReader(freader);
String line = "";
while ((line = lnreader.readLine()) != null){
System.out.println("Linea" + lnreader.getLineNumber() + ": " + line);
}
}
finally{ // cuando termina el try se realize finally
freader.close();
lnreader.close();
}
}
}
Con el próximo ejemplo se copia un archivo, pero la lectura se realiza sin usar
BufferedReader, solo FileReader y el método read. Se crea un nuevo archivo
datos1.txt. Verifica su contenido y comenta. ¿Puedes copiar el mismo archivo usando
BufferedReader? Intenta grabar usando la clase FileWriter y PrintWriter con el
método println, de manera similar a como se usa FileReader, BufferedReader y
readline. No olvides comentar. Conviene mostrar resultados al facilitador.
import java.io.*;
// No usa Buffered Reader para leer
public class LeeconRead {
public static void main(String[] args) throws IOException {
File inputFile = new File("dato.txt"); //archivo de entrada
File outputFile = new File("datos1.txt"); //archivo de salida
Diego Santimateo G.
CRUV-FIEC
Programación Orientada a Objetos
Experimenta con el siguiente ejemplo, identifica clases, objetos y métodos.
Determina para qué sirve el siguiente programa y expresa los resultados de
tu experiencia en el foro. ¿Qué cosas descubriste?
import java.io.FileReader;
fr.close();
}
catch (Exception e) {
System.out.println("Exception: " + e);
}
} // fin del main()
} // fin de la clase
Referencias
http://www.iua.upf.es/~hsolis/PIII/sesion08.html
http://www.cica.es/formacion/JavaTut/Intro/tabla.html
http://www.javacoffeebreak.com/books/extracts/javanotesv3/c10/s2.html
http://www.chuidiang.com/java/novatos/editor/leer_escribir_fichero.php
http://www.programacion.com/java/tutorial/excepciones/
Diego Santimateo G.