Sei sulla pagina 1di 25

UNIVERSIDAD DE ORIENTE – NÚCLEO MONAGAS

ESCUELA DE INGENIERÍA Y CIENCIAS APLICADAS


DEPARTAMENTO DE INGENIERÍA DE SISTEMAS
OBJETOS Y ABSTRACCIÓN DE DATOS

ARCHIVOS EN JAVA

PROFESOR: ESTUDIANTES:

DÍAZ, FRANK. DELGADO, GRACE. C.I: V-17.722.760

MAITA, YURIANNY. C.I: V-25.978.382

RIVAS, FABIANA. C.I: V-26.600.984

ROCCA, CARLOS. C.I: V-26.689.848

MATURÍN, JUNIO DE 2019


INTRODUCCIÓN

Java se concibe como un lenguaje de programación de propósito general,


creado especialmente para que los diseñadores de aplicaciones escriban el
programa una sola vez y lo ejecuten en cualquier dispositivo, de tal manera que un
código ejecutado en una plataforma, no tenga que recopilarse para que pueda
funcionar en otra. Java constituye uno de los lenguajes de programación más
populares en uso, particularmente para aplicaciones de usuario-servidor de web,
que incluye millones de clientes en el mundo. Para lograr la permanencia de datos
en el desarrollo de aplicaciones, se requieren archivos o ficheros.

Uno de los objetivos esenciales en programación consiste en desarrollar


archivos, los cuales pueden ser de dos clases, según los datos que contienen: de
caracteres (texto) o de bytes (binarios). Un archivo de texto está conformado
únicamente por caracteres, que se crean y visualizan por medio de un editor. De
esta forma, las operaciones de lectura y escritura deben trabajar con caracteres.
Los registros en código Java incluyen archivos de texto. Además, Java cuenta con
distintas clases para el acceso a archivos, cada una con sus técnicas específicas y
adecuadas. Se puede optar entre el acceso de flujo y el acceso aleatorio en un
archivo. El primero presenta una secuencia de elementos que deben ser
procesados ordenadamente, mientras que el segundo tiene acceso a una posición
específica en el archivo, lo que permitirá acelerar el procesamiento; sin embargo,
es más complicado de programar.

La presente investigación analiza las distintas opciones para trabajar con


archivos, como referencia de los procedimientos actuales en código Java, y define
los conceptos básicos de programación en Java, el almacenamiento, la creación y
manipulación de datos. Está estructurada así: Portada, Introducción, Desarrollo de
la investigación, Conclusión, Referencias Bibliográficas y Anexos.
ARCHIVOS EN JAVA

Los programas constan de estrategias para almacenar información. Si se


pretende guardar la información de manera permanente, una vez ejecutado un
programa, lo primero que se debe hacer es ordenar dicha información en uno o
varios archivos guardados en algún soporte de almacenamiento persistente. Otros
medios, tales como el uso de bases de datos usan archivos como soporte para el
almacenamiento de la información.

 Definición de Archivos

Según Cortés (2013):


un fichero es una abstracción del sistema operativo para el
almacenamiento genérico de datos. La parte del sistema
operativo encargada del manejo de ficheros se denomina
“sistema de ficheros”. (p.3)

En otras palabras, los ficheros, también llamados archivos pueden


concebirse como una colección de información o datos relacionados entre sí,
almacenados como una unidad en la computadora. Es decir, un conjunto
organizado de informaciones del mismo tipo, que pueden manejarse en un mismo
procedimiento; como soporte material de dichos datos.

 Escritura de Archivos.
Se puede crear un archivo vacío abriéndolo de la siguiente manera:
Archivo a = open (nombre, 'w')
El segundo parámetro de la función open indica el uso que se le dará al
archivo. 'w' significa «escribir» (write en inglés).
Si el archivo señalado no existe, entonces será creado. Si ya existe, entonces
será sobrescrito. Hay que tener cuidado entonces, pues esta operación elimina los
datos del archivo que existía previamente.
Una vez abierto el archivo, se puede escribir datos en él usando el método
write:
a= open (“prueba.txt”, 'w')
a.write (“Hola”)
a.write (“mundo.”)
a.close()
Una vez ejecutado este programa, el archivo prueba.txt será creado (o
sobrescrito, si ya existía). Al abrirlo en el Bloc de Notas, veremos este contenido:
Hola mundo.
Además del modo 'w' (write), también existe el modo 'a'(append), que
permite escribir datos al final de un archivo existente. Por ejemplo, el siguiente
programa abre el archivo prueba.txt que ya esta creado, y agrega más texto al final
de él:
a= open (“prueba.txt”, 'a')
a.write ('\n')
a.write (“Chao”)
a.close()

Si abrimos el archivo prueba.txt en el Bloc de Notas, veremos esto:


Hola mundo.
Chao.
De haber abierto el archivo en modo 'w' en vez de 'a', el contenido anterior
(la frase Hola mundo) se habría borrado.

 Características de los Archivos.


Las principales características de esta estructura son:
 Independencia de las informaciones respecto de los programas.
 La información almacenada es permanente.
 Un archivo puede ser accedido por distintos programas en distintos
momentos.
 Gran capacidad de almacenamiento.
 Clasificación de los Archivos.
Los archivos se clasifican según su uso en tres grupos:
 Permanentes o Maestros, estos contienen información que varía poco. En
algunos casos es preciso actualizarlos periódicamente.
 De Movimientos, Se crean para actualizar los archivos maestros. Sus
registros son de tres tipos: alta, bajas y modificaciones.
 De Maniobra o Trabajo: Tienen una vida limitada, normalmente menor que la
duración de la ejecución de un programa. Se utilizan como auxiliares de los
anteriores.
 Tipos de Archivos.
Los elementos de un archivo pueden ser según su función o según sus elementos.
Según su función:
 Archivos Permanentes:Son aquellos cuyo registros sufren pocas o ninguna
variación a lo largo del tiempo, se dividen en:
 Constantes: Están formados por registros que contienen campos fijos
y campos de baja frecuencia de variación en el tiempo.
 De Situación: Son los que en cada momento contienen información
actualizada.
 Históricos: Contienen información acumulada a lo largo del tiempo de
archivos que han sufridos procesos de actualización o bien acumulan datos
de variación periódica en el tiempo.
 Archivos de Movimiento: Son aquellos que se utilizan conjuntamente con
los maestros (constantes), y contienen algún campo común en sus registros
con aquellos, para el procesamiento de las modificaciones experimentados
por los mismos.
 Archivo de Maniobra o Transitorios: Son los archivos creados auxiliares
creados durante la ejecución del programa y borrados habitualmente al
terminar el mismo.

Según sus elementos, los principales archivos de este tipo son:


 Archivo de Entrada: Una colección de datos localizados en un dispositivo
de entrada.
 Archivo de Salida: Una colección de información visualizada por la
computadora.
 Archivo de Programa: un programa codificado en un lenguaje específico y
localizado o almacenado en un dispositivo de almacenamiento.
 Archivo de Texto: una colección de caracteres almacenados como una
unidad en un dispositivo de almacenamiento.

 Archivos de texto.

Si se desea procesar datos de un archivo existente, se debe:


 Abrir el archivo.
 Leer o introducir los datos en las variables, un elemento a la vez.
 Cerrar el archivo cuando se termine de trabajar con él.
Para transferir algunos datos de ciertas variables a un archivo, se debe:
 Abrir el archivo.
 Extraer o escribir los elementos en la secuencia requerida.
 Cerrar el archivo cuando se termine de trabajar con él.
Al leer un archivo, todo lo que puede hacerse es leer el siguiente elemento.
Si, por ejemplo, quisiéramos examinar el último elemento, tendríamos que codificar
un ciclo para leer cada uno de los elementos en turno, hasta llegar al elemento
requerido. Para muchas tareas, es conveniente visualizar un archivo como una serie
de líneas de texto, cada una compuesta por un número de caracteres y que termina
con el carácter de fin de línea. Un beneficio de esta forma de trabajo es la facilidad
de transferir archivos entre aplicaciones. Así se podría crear un archivo ejecutando
un programa en Java y después cargarlo en un procesador de palabras, editor de
texto o correo electrónico. Los programas que utilizan archivos deben contener la
instrucción:
import java.io.*;
"Búfer" significa que, el software lee un gran trozo de datos del dispositivo de
almacenamiento externo y lo guarda en la RAM, de tal forma que invocaciones
sucesivas de los métodos que necesitan leer una pequeña cantidad de datos del
dispositivo de almacenamiento de archivos puedan obtener rápidamente los datos
de la RAM. Por lo tanto, un búfer actúa como un amortiguador temporal entre el
dispositivo de almacenamiento y el programa.

Los canales de Archivos son quizás los canales más fáciles de entender. Las
clases FileInputStream y FileOutputStream representan una canal de entrada (o
salida) sobre un Archivo que reside en el sistema de Archivos nativo. Se puede crear
un canal de Archivo desde un nombre de Archivo, un objeto File o un objeto
FileDescriptor.
Por ejemplo:
import java.io.*;
classFileStreamsTest {
public static void main(String[] args) {
try {
File inputFile = new File("farrago.txt");
File outputFile = new File("outagain.txt");
FileInputStreamfis = new FileInputStream(inputFile);
FileOutputStreamfos = new FileOutputStream(outputFile);
int c;
while ((c = fis.read()) != -1) {
fos.write(c);
}
fis.close();
fos.close();
} catch (FileNotFoundException e) {
System.err.println("FileStreamsTest: " + e);
} catch (IOException e) {
System.err.println("FileStreamsTest: " + e);
}
}
}
 Acceso a los Archivos.
Se refiere al método utilizado para acceder a los registros de un archivo
prescindiendo de su organización. Existen distintas formas de acceder a los datos:
 Secuenciales; los registros se leen desde el principio hasta el final del
archivo, de tal forma que para leer un registro se leen todos los que
preceden.
 Directo; cada registro puede leerse / escribirse de forma directa solo
con expresar su dirección en el fichero por él numero relativo del
registro o por transformaciones de la clave de registro en él numero
relativo del registro a acceder.
 Por Índice; se accede indirectamente a los registros por su clave,
mediante consultas secuenciales a una tabla que contiene la clave y
la dirección relativa de cada registro, y posterior acceso directo al
registro.
 Dinámico; es cuando se accede a los archivos en cualquier de los
modos anteriormente citados.
La elección del método está directamente relacionada con la estructura de
los registros del archivo y del soporte utilizado.

 Tipos de accesos.

 Acceso Secuencial: Exige el tratamiento de elemento, para esto es


necesario una exploración secuencial comenzando desde el primer
momento (Pascal permite este acceso)
 Secuenciales: archivo de texto que debe ser leído del principio hasta
el final.
 Acceso Directo: Permite procesar o acceder a un elemento
determinado y referencia directamente por su posición en el soporte
de almacenamiento (Turbo Pascal permite este acceso).
 Aleatorios: archivo con registros de un mismo largo. Un programa
puede accesar directamente cualquier registro sin tener que leer los
registros previos.
 Binarios: archivo que lee byte por byte, sin asumir ninguna estructura.
Los archivos Binarios no son un nuevo tipo de archivo, pero si una
nueva forma de manipular cualquier tipo de archivo. Las técnicas de
archivo binarios permiten leer o cambiar cualquier byte de un archivo.
Son herramientas extremadamente potentes, pero como toda
herramienta potente debe manejarse con cuidado, entre otras
características, a las técnicas de archivo binario no les preocupa los
caracteres EOF intercalados (Control+Z = Chr$(26)) que pueda tener
un archivo.
Ejemplo: Open NombreArchivo for Binary as #NumeroArchivo.
Instrucciones para manejar archivos;
OPEN: reserva un espacio del buffer para la data que moverá entre el
programa y los archivos. La estructura es:
OPEN filespec FOR {Append|Binary|Input|Outuput|Random} As #filenumber
Por ejemplo:
OPEN "C:\Windows\AddrBook.ini" FOR Input As #1
Filespec: Es la localización de archivo en el que se trabajará, incluyendo
usualmente el drive y path.
"C:\Windows\AddrBook.ini"
{Append| Binary| Input| Outuput| Random} El programador tiene que
seleccionar uno. Binary y Random se utiliza para archivos binarios y
aleatorios. Append, Input y Output son usados con archivos secuenciales. Un
archivo secuencial no puede ser abierto para leer y escribir
simultáneamente. Output es usado para escribir en el archivo. Input es usado para
leer del archivo. Append es usado para colocar data al final de un archivo existente.
#filenumber: es necesario asignar un número al archivo. El número puede
estar en el rango de #1 a #511 y es usado por Visual Basic para identificar el archivo.
CLOSE: para cerrar un archivo. La estructura es:
CLOSE #filenumber
Por ejemplo:
CLOSE #1
WRITE: envía data del programa al archivo secuencial. La estructura es:
WRITE #filenumber, [OutputList]
Por ejemplo:
WRITE #1, UserName, UserCompany, SerialNumber
WRITE es la operación opuesta al INPUT. Las expresiones en el OutputList
son separadas por comas. WRITE inserta comillas y comas a la data que envía al
archivo.
INPUT: lee data delarchivo. La estructura es:
INPUT #filenumber, InputList
Por ejemplo:
INPUT #1, UserName, UserCompany, SerialNumber
Declaración y asignación de archivos
La declaración de un archivo con tipo se efectúa con la ayuda de las
palabras reservadas file of.
El procedimiento de asignación es idéntico al utilizado anteriormente.
Ejemplo:
Type
datos = record
clave : integer;
nombre : string[30];
puesto : string[20];
sueldo : real;
estado : boolean;
{trueactivo,false baja lógica}
end;
Var
archivo:file of datos;
begin
Assign(archivo,'empleado.dat').

 Sistema de manejo de Archivo.


Tiene las siguientes funciones:
 Controla los datos en almacenamiento secundario.
 Proporciona al usuario una abstracción de cómo se manipulan los datos
internamente.
 Proporciona independencia de E/S con los dispositivos.
 Soporte de compartición, protección, recuperación de archivos y posibles
caídas del sistema.
 Transmisión de datos de memoria principal a secundaria.

 Operaciones generales que se realizan sobre un archivo.


 Creación. Escritura de todos sus registros.
 Consulta. Lectura de todos sus registros.
 Actualización. Inserción supresión o modificación de algunos de sus registros
 Clasificación. Reubicación de los registros de tal forma que queden
ordenados según determinados criterios.
 Borrado. Eliminando total del archivo, dejando libre el espacio del soporte
que ocupaba.

 Organización de Archivos.
Los archivos se encuentran organizados lógicamente como una secuencia
de registros de varias longitudes diferentes.
 Los archivos de registros de longitud fija: son los que almacenan
la información en los archivos mediante un encabezado y luego se
introducen uno a uno los registros ubicados en posiciones
consecutivas.
 Los registros de longitud variable: es el almacenamiento de
registros de varios tipos en un archivo y permite uno o más campos de
longitudes variables y dichos campos pueden ser repetidos. La
longitud de los registros debe estar definida correctamente
para poder leer y escribir de forma efectiva.

 Enfoque para la organización de Archivos.


Los enfoques son:
 Enfoque de acceso secuencial: Se refiere al procesamiento de los
archivos de acuerdo con el orden específico. Ejemplo archivo
secuenciales y de texto.
 Enfoque de acceso Directo: Permite recuperar registros individuales
sin leer otros registros del archivo, ejemplos archivos indizados.

 Archivos secuenciales.
Se refiere al procesamiento de los registros, no importa el orden en que se
haga, para eso los registros están organizados en forma de una lista y recuperarlos
y procesarlos uno por uno de principio a fin.
Rudimentos de los archivos Secuenciales; dependiendo del dispositivo de
almacenamiento utilizado el archivo se puede mostrar el usuario como si fuera un
sistema secuencial.
Al finalizar un archivo secuencial se denota con una marca de fin de archivo.
(Endend-of-file)
El usuario de un archivo secuencial puede ver los registros en un orden
secuencial simple.
La única forma de recuperar registros es comenzar al principio y extraerlos
en el orden contemplado.
Cuestiones de programación; la manipulación de los archivos se hace en el
contexto de la programación en un lenguaje por procedimientos de alto nivel. Estos
lenguajes tienden a expresar la manipulación de archivos mediante subrutinas que
se definen como parte del lenguaje formal o se incluyen como extensiones del
lenguaje en una biblioteca estándar.
La mayor parte de los lenguajes por procedimiento de alto nivel cuenta con
características que ayudan a detectar la marca de fin de archivo.

 Archivos de texto.
También conocidos como (Stream File) son utilizados para
almacenar documentos que consisten en texto; En ellos, cada registro es un solo
símbolo o código de control.
El leer estos archivos recibimos la información en orden secuencial en el que
aparece cuando lo vemos en un monitor.
Los archivos de texto son una secuencia de líneas separadas por marcas de
fin de línea.
Rudimentos de los archivos de textos; El usuario escribe los archivos de
textos mediante un procesador de palabras que le permitirá almacenar la
información, pero no estrictamente en forma secuencial.
El procesador también nos permite desplazarnos por todo el bloque de
información y permitirnos realizar modificaciones.
Mientras el usuario avance rápidamente en la lectura de registro logrará ver
más archivos.
Cuestiones de programación; Casi todos los entornos de programación por
procedimientos de alto nivel cuentan con subrutinas para manipular los archivos de
texto.
Estas subrutinas pueden formar parte de la definición formal del lenguaje o
que se ofrezca en biblioteca como extensiones del mismo.

 Archivos indizados.
Es la aplicación de incluir índices en el almacenamiento de los archivos; de
esta forma nos será más fácil buscar algún registro sin necesidad de ver todo el
archivo.
Un índice en un archivo consiste en un listado de los valores del campo clave
que ocurren en el archivo, junto con la posición de registro correspondiente en el
almacenamiento masivo. Fundamento de los Índices:
La colocación de un listado al inicio del archivo: para la identificación del
contenido.
La presentación de un segundo índice: para reflejar la información de cada
punto principal del índice anterior.
La actualización de los índices: Cuando se insertan y eliminan archivos, es
preciso actualizar los índices para evitar contratiempos actualizando un archivo.
La organización de un índice: Nos evita examinar archivo por archivo para
recuperar algún registro buscado; por lo tanto, se ahorraría tiempo si tiene una
adecuada organización de los índices.
 Cuestiones de Programación
Algunos lenguajes de alto nivel cuentan con subtítulos para manipular los
archivos de un registro indizado.
Valiéndose de las subrutinas es posible escribir programas sin tener que
preocuparse por la estructura real del sistema de índices que se aplique.
 Archivos Dispersos.
También llamados (Hashed Files) representan un sistema de
almacenamiento de archivos que solo ofrece acceso directo, y permiten calcular la
posición de un registro en el almacenamiento masivo.
Rudimentos de los archivos dispersos.
El usuario debe dividir el área de almacenamiento asignando al archivo en
varias secciones llamadas cubetas para poder ingresar los datos.
La distribución de la información en las cubetas es problemática debido a que
la estructura de los archivos es dispersa.
Dentro de los archivos se presentan colisiones de información debido al
agrupamiento de los registros ingresados.
 Cuestiones de programación.
Casi ninguno de los lenguajes de programación por procedimientos en la
actualidad ofrece implantaciones directas de archivos dispersos; esto es debido a
las cuestiones dependientes de la aplicación implicadas en el diseño de estos
archivos.
 Medidas de Utilización de los archivos.
Para utilizar un archivo debemos tener en cuenta:
Índice de Volatilidad; Un archivo es volátil cuando tiene un alto porcentaje de
adiciones y supresiones debido al ingreso o eliminación de registros respecto al
número promedio de registros que haya en el archivo.
Índice de Actividad; Un archivo es activo cuando tiene un alto porcentaje
de utilidad sea de actualización o consulta en un periodo de tiempo fijo respecto al
número promedio de registro que se encuentran en el archivo.
El índice de actividad suele emplearse para saber si un archivo puede
explotarse como una organización secuencial o relativa.
Archivos de acceso directo (con tipo): Los archivos tipeados (con tipo),
también llamados archivos binarios, contienen datos de tipo simple o estructurado,
tales como integer, real, record, etc., excepto otro tipo de archivos.
Los archivos con tipos están estructurados en elementos o registros (record)
cuyo tipo puede ser cualquiera. A los elementos de estos archivos se accede
directamente, al no situarse éstos en posiciones físicamente consecutivas, sino en
posiciones lógicas. Esta es la razón por la cual se les denomina archivos de acceso
aleatorio o directo. Los elementos de los archivos aleatorios son de igual tamaño y
el término acceso directo significa que es posible acceder directamente a un
elemento con solo especificar su posición.
CONCLUSIÓN

Java se considera un lenguaje de programación semicompilado que funciona


con una máquina virtual, la cual es fundamental para llevar a cabo los programas
escritos en dicho lenguaje. Cabe destacar que se usa en algunos sistemas
operativos, como OS X, Windows y Linux. Su función es descifrar los programas de
Java, transformarlos en lenguaje de máquina con el propósito de que la
computadora puede ejecutar el programa. Asimismo, Java posee muchas ventajas,
entre las que destaca que es un lenguaje multiplataforma debido a que se ejecuta
en la mayoría de los sistemas operativos, que incluye a los sistemas operativos
móviles. Igualmente, constituye un lenguaje completo y eficaz porque permite
efectuar diversos trabajos al incluir una amplia variedad de funciones que facilitan
la programación.

También, Java es un software de distribución libre que no requiere de una


autorización o licencia. Sin embargo, a veces Java se convierte en un lenguaje de
ejecución lento debido al uso de la máquina virtual de Java. Algunos programadores
consideran que es un lenguaje difícil de aprender por su complicada sintaxis.
Aunque, la estructura de dicho lenguaje es completa, organizada y parecida al
lenguaje de C++. Por ende, tener conocimiento previo en C++, facilitaría el
aprendizaje de Java.

Para finalizar, la enseñanza de los lenguajes de programación debe incluirse


en todos los niveles del sistema educativo venezolano debido a que la programación
desarrolla el pensamiento. En la medida que los estudiantes aprendan a programar,
estarán mejor preparados para la demanda en el ámbito digital. Por lo tanto, la
programación debe considerarse como un segundo lenguaje en la era tecnológica
actual que permitirá la formación de nuevas generaciones, programadores y
profesionales en las diversas disciplinas científicas y sociales que requiere el país.
REFERENCIAS BIBLIOGRÁFICAS

Cortés, A. (2013). Entrada/Salida con ficheros en Java. Disponible en:


http://www.it.uc3m.es/java/2012-13/resources/java-file-io/java-file-io_es.pdf
Consultado el 18 de junio de 2019.

Gimeno, J. Y González, J. (2012). Manejo básico de archivos en Java.


Disponible en:
http://ocw.udl.cat/enginyeria-i-arquitectura/programacio-2/continguts-1/4-manejo-
bai81sico-de-archivos-en-java.pdf Consultado el 18 de junio de 2019.

Roberts, E. (2008). El arte y la ciencia de Java. Addison: Wesley


ANEXOS
REPRESENTACIÓN GRÁFICA DE ENTRADA Y SALIDA CON FICHEROS

Recuperado de https://www.redeszone.net/2012/02/06/curso-de-java-entrada-y-salida-
con-ficheros-primeros-ejemplos/

REPRESENTACIÓN GRÁFICA DE LOS FLUJOS DE ENTRADA/SALIDA DE


DATOS HACIA Y DESDE ARCHIVOS EN UN PROGRAMA

Recuperado de http://poo-gr2-marju.blogspot.com/2015/06/flujos-de-entrada-y-salida-en-
java.html
REPRESENTACIÓN GRÁFICA DE LAS DIFERENCIAS ENTRE ACCESO
SECUENCIAL Y ACCESO ALEATORIO O DIRECTO.

Recuperado de https://es.wikipedia.org/wiki/Acceso_secuencial

REPRESENTACIÓN GRÁFICA DE ARCHIVO DE TEXTO

Recuperado de https://exceltotal.com/importar-archivos-de-texto/
EJEMPLOS

Ejemplo N°1:
Escribir en un archivo de texto, los datos: nombre; edad; identificación,
recibidos por teclado, con los correspondientes manejos de excepciones.

import java.io.*;
importjavax.swing.JOptionPane;
public class files
{
public static void main( String[] args )
{
FileWriterfw = null;
System.out.println("Ingrese los datos siguientes: "+
"Nombre, edad, identificación, de 10 "+
"personas para almacenarlos en un archivo de texto");
try
{
fw = new FileWriter("info.txt");
PrintWriterSalida = new PrintWriter(fw);
String nombre = new String();
intedad;
int ID;
Salida.println("Nombre-Edad-Identificacion");
for(int i=0; i<10; ++i) {
System.out.println((i+1) + "-");
nombre = JOptionPane.showInputDialog("Nombre");
edad = Integer.parseInt(JOptionPane.showInputDialog("Edad"));
ID =Integer.parseInt(JOptionPane.showInputDialog("Identificacion"));
Salida.print(nombre + " ");
Salida.print(edad + " ");
Salida.print(ID + " ");
Salida.println();
}
}
catch (Exception error)
{
System.out.println(
"Ha ocurrido un error: " +
error.getMessage() );
} finally {
try {
// se utiliza el finally para
// asegurarse que se cierra el fichero.
if (null != fw)
fw.close();
} catch (Exception error) {
System.out.println(
"Ha ocurrido un error: " +
error.getMessage() );
}
}
}
}

Ejemplo N°2:
Leer los datos del archivo de texto anteriormente creado y mostrar su
contenido.

import java.io.*;

public class files2 {


public static void main(String[] args){
File archivo = null;
FileReaderfr = null;
BufferedReaderbr = null;
try {
archivo = new File ("info.txt");
fr = new FileReader (archivo);

//se crea un BufferedReader


//para utilizar readLine()
br = new BufferedReader(fr);

// Lectura del fichero


System.out.println("Lectura del archivo info.txt:");
String linea;
while((linea=br.readLine())!=null)
System.out.println(linea);
}
catch(Exception error){
System.out.println(
"Ha ocurrido un error: " +
error.getMessage() );
}finally{
//en el finally se cierra el archivo
//para asegurarse de que se cierre
//tanto si ocurrio una excepcion
//como si todo estuvo normal
try{
if( null != fr ){
fr.close();
}
}catch (Exception error){
System.out.println(
"Ha ocurrido un error: " +
error.getMessage() );
}
}
}
}

Ejemplo N° 3:
Copiar el contenido de un fichero binario a otro fichero binario, utilizando un
búfer intermedio para agilizar los procesos de entradas y salidas.

importjava.io.FileInputStream;
importjava.io.FileOutputStream;

public class CopiaFicheros {

public static void main(String[] args) {


copia ("prueba.txt", "info.txt");
}

public static void copia (String ficheroOriginal, String ficheroCopia)


{
try
{
// Se abre el fichero original para lectura
FileInputStreamfileInput = new FileInputStream(ficheroOriginal);
BufferedInputStreambufferedInput = new BufferedInputStream(fileInput);

// Se abre el fichero donde se hará la copia


FileOutputStreamfileOutput = new FileOutputStream (ficheroCopia);
BufferedOutputStreambufferedOutput = new BufferedOutputStream(fileOutput);

// Bucle para leer de un fichero y escribir en el otro.


byte [] array = new byte[1000];
intleidos = bufferedInput.read(array);
while (leidos> 0)
{
bufferedOutput.write(array,0,leidos);
leidos=bufferedInput.read(array);
}

// Cierre de los ficheros


bufferedInput.close();
bufferedOutput.close();
}
catch (Exception error)
{
error.printStackTrace();
}
}
}

Potrebbero piacerti anche