Los programas usan variables para almacenar información:
- Los datos de entrada.
- Los resultados calculados.
- Los valores intermedios generados a lo largo del cálculo.
Un archivo o fichero lo podriamos definir como:
"Un conjunto de bits almacenados en un dispositivo, y accesible a través de un camino de acceso (pathname) que lo identifica."
Esta versión de bajo nivel, si bien es completamente cierta, es demasiado simple...
Por ello definiremos varios criterios para distinguir diversas subcategorías de archivos. Estos tipos de archivo se diferenciarán desde el punto de vista de la programación: cada uno de ellos proporcionará diferentes funcionalidades (métodos) para su manipulación.
El criterio de contenido:
Sabemos que es diferente manipular números que Strings, aunque en el fondo ambos acaben siendo bits en la memoria del ordenador. Por eso, cuando manipulamos archivos, distinguiremos dos clases de archivos dependiendo del tipo de datos que contienen:
- Los archivos de caracteres (o de texto)
- Los archivos de bytes (o binarios)
El criterio del modo de acceso.
Existen dos modos básicos de acceso a la información contenida en un archivo:
- Secuencial.
- Acceso directo.
En el modo secuencial la información del archivo es una secuencia de bytes (o caracteres) de manera que para acceder al byte (o carácter) i-ésimo (se nombra de esa manera cuando estamos hablando de un caso general y que por lo tanto no conocemos el número exacto) se ha de haber accedido anteriormente a los i-1 anteriores.
En el modo de acceso directo nos permite acceder directamente a la información del byte i-ésimo. Un ejemplo muy conocido de acceso directo lo tenemos con los vectores (arrays).
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /** * Clase que lee y escribe el fichero en modo Stream */ public class Stream { public static void main(String[] args) throws IOException { FileInputStream in = null; FileOutputStream out = null; try{ in = new FileInputStream("entrada.txt"); out = new FileOutputStream("salida.txt"); int c; while ((c = in.read()) != -1) { System.out.println(c); out.write(c); } }finally { if (in != null) { in.close(); } if (out != null) { out.close(); } } } }
|
Otra opción es ir cargandolo en memoria:
import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; import java.io.PrintWriter; import java.io.IOException; /** * Clase que lee y escribe el fichero en memoria */ public class ReaderWritter { public static void main(String[] args) throws IOException { BufferedReader inputStream = null; PrintWriter outputStream = null; try { inputStream = new BufferedReader(new FileReader("entrada.txt")); outputStream = new PrintWriter(new FileWriter("salida.txt")); String l; while ((l = inputStream.readLine()) != null) { System.out.println(l); outputStream.println(l); } } finally { if (inputStream != null) { inputStream.close(); } if (outputStream != null) { outputStream.close(); }
}
}
}
|
Descarga todo.
Cap comentari :
Publica un comentari a l'entrada