Definicion de archivos

Solo disponible en BuenasTareas
  • Páginas : 8 (1951 palabras )
  • Descarga(s) : 0
  • Publicado : 6 de junio de 2011
Leer documento completo
Vista previa del texto
Un archivo es un conjunto de datos de largo variable identificado con un nombre. Un nombre de
archivo suele tener dos partes separadas por un punto. La primera parte alude a su propósito; la
segunda, llamada extensión, indica el tipo de datos que contiene. Un archivo cuyo nombre termina
en “.class” contiene la definición de una clase Java y el código ejecutable para sus métodos; un
archivoterminado en ".java" contiene el texto del código fuente escrito por el programador. Los
archivos se agrupan en directorios (hoy en día denominados carpetas). Un directorio es un
conjunto de archivos guardados bajo un nombre común, el nombre del directorio. Un directorio
puede estar dentro de otro directorio, llamado a veces "directorio padre”. Se forma así un árbol de
directorios, unaorganización jerárquica de directorios y subdirectorios contenidos en ellos, en
varios niveles. La lista ordenada de directorios que lleva desde la raíz del árbol hasta un archivo
específico se denomina una ruta o en inglés "path". Un ejemplo en MS Windows sería
C:\Mis Documentos\FHernandez\DesaSoft\EntradaSalida\apuntes.pdf
En Unix o Linux,
/home/fhernandez/DesaSoft/EntradaSalida/apuntes.pdf

Laforma en que uno o más árboles de directorios se organizan en forma física dentro de medios
de almacenamiento o memoria se denomina sistema de archivos.
El sistema operativo de la máquina es quien provee el sistema de archivos y una interfaz propia
para el acceso a éste.
Tipos de acceso a datos
• Acceso aleatorio ("random"): Los archivos de acceso aleatorio, al igual que lo que sucedeusualmente con la memoria (RAM=Random Access Memory), permiten acceder a los datos
en forma no secuencial, desordenada. Esto implica que el archivo debe estar disponible en
su totalidad al momento de ser accedido, algo que no siempre es posible.
• Acceso secuencial (flujos o "streams"): En este caso los datos son leídos secuencialmente,
desde el comienzo del archivo hasta el final (el cual muchasveces no se conoce a priori).
Este es el caso de la lectura del teclado o la escritura en una consola de texto, no se sabe
cuándo el operador terminará de escribir.
• Concatenación (tuberías o "pipes"): Muchas veces es útil armar conexiones entre
programas que corren simultáneamente dentro de una misma máquina, de forma que lo
que uno produce se envía por un “tubo” para ser recibido por el otro,que está esperando a
la salida del tubo. Las tuberías o "pipes" cumplen esta función
Flujos de entrada y salida
Un flujo de entrada / salida (I/O stream, Input / Output stream) representa una fuente desde la
cual se reciben datos o un destino hacia el cual se envían datos. Un flujo de datos puede provenir o
dirigirse hacia archivos en disco, dispositivos de comunicaciones, otros programas oarreglos en
memoria. Los datos pueden ser bytes, tipos primitivos, caracteres propios de un idioma local, u
objetos. Los flujos pueden simplemente transferir datos sin modificación o manipular esos datos
para transformarlos de diversas maneras como parte del proceso de transferencia. Sea cual sea el
tipo de datos, un flujo se presenta como una secuencia de datos. Un flujo de entrada (inputstream)
lee datos de una fuente, un item por vez. Un flujo de salida (output stream) escribe datos en un
destino, un item por vez.
Flujos de Bytes (Byte Streams)
Los flujos de bytes realizan operaciones de entrada y salida en base a bytes de 8 bits. Todos las
clases de flujos de bytes descienden de las clases InputStream y OutputStream. Las clases
FileInputStream y FileOutputStream manipulanflujos de bytes provenientes o dirigidos
hacia archivos en disco.
El siguiente ejemplo copia su propio texto fuente desde CopiaBytes.java hacia CopiaBytes.txt:
/* CopiaBytes.java: copia este archivo hacia CopiaBytes.txt
*/
public class CopiaBytes {
public static void main(String[] args) throws IOException {
FileInputStream in = null;
FileOutputStream out = null;
try { // crea flujos de...
tracking img