Академический Документы
Профессиональный Документы
Культура Документы
Pgina: 60
UNIVERSIDAD CATLICA DE SANTA MARA FACULTAD DE CIENCIAS E INGENIERAS FSICAS Y FORMALES PROGRAMA PROFESIONAL DE INGENIERA DE SISTEMAS
PRCTICA N 11
Archivos
OBJETIVOS
Conocer y utilizar los conceptos sobre el manejo de archivos en Java Desarrollar ejercicios utilizando archivos
TEMAS
A
TRATAR
Archivos
Clases
que
manipulan
archivos
MARCO
TERICO
Archivos
Son
medios
de
almacenamiento
persistente
en
un
programa,
en
otras
palabras,
conservan
el
contenido
a
pesar
de
cerrar
el
aplicativo
o
apagar
el
computador.
Los
archivos
pueden
ser
de
distintos
tipos:
Archivos
de
texto,
cuyos
datos
estn
en
formato
ASCII
Programas
ejecutables
en
formato
binario
Imgenes
(bitmaps,
jpeg,
gif)
Sonido
(wav)
Video
(avi)
Nosotros
trabajaremos
con
archivos
planos
o
texto.
Prctica: 11
Fundamentos de Programacin
Pgina: 61
Clase
File
Es
la
clase
que
permite
abrir
un
archivo.
Permite
crear
la
conexin
con
el
archivo,
si
el
archivo
existe
lo
abre,
si
no
existe
lo
crea.
Constructor
de
la
clase
File:
File
<identificador>
=
new
File(<direccin_archivo>);
Ejemplos:
File
archivo
=
new
File(alumnos.txt);
File
archivo_docente
=
new
File(c:/trabajos/docente.txt);
Mtodos
de
la
clase
File:
String
getName()
=
retorna
el
nombre
del
archivo.
String
getPath()
=
retorna
la
ruta
del
archivo.
String
getParent()
=
retorna
la
carpeta
padre
del
archivo.
boolean
renameTo
(File
<otro_nombre>)
=
Permite
modificar
el
nombre
del
archivo.
boolean
exists()
=
retorna
true,
si
el
archivo
existe.
Long
length()
=
retorna
el
tamao
del
archivo
en
bytes.
Clase
FileReader
Permite
leer
un
archivo
carcter
por
carcter.
Constructor
de
la
clase
FileReader:
FileReader
<identificador>
=
new
FileReader(<archivo_File>)
Ejemplo:
FileReader
lector
=
new
FileReader(archivo_docente);
Mtodos
de
la
clase
FileReader:
int
read()
=
Lee
un
carcter.
void
close()
=
cierra
el
lector.
Ejemplo
de
lectura:
File archivo = new File("Personas.txt"); FileReader lector = new FileReader(archivo); int car = lector.read(); while (car != -1){ Usuario.mensajeConsola((char) car); car = lector.read(); } lector.close();
Prctica: 11
Fundamentos de Programacin
Pgina: 62
Clase
BufferedReader
Permite
leer
un
archivo
carcter
por
carcter
o
lnea
por
lnea.
Esta
clase
hace
una
lectura
ms
eficiente
que
la
clase
FileReader.
Esta
clase
requiere
un
objeto
FileReader
para
realizar
la
lectura.
Constructor
de
la
clase
BufferedReader:
BufferedReader
<identificador>
=
new
BufferedReader(<FileReader>)
Ejemplo:
BufferedReader
lectorBR
=
new
BufferedReader(lector);
Mtodos
de
la
clase
BufferedReader:
int
read()
=
Lee
un
carcter.
String
readLine()
=
retorna
una
lnea
completa,
sin
considerar
el
carcter
de
fin
de
lnea.
void
close()
=
cierra
el
lector.
Ejemplo
de
lectura:
File archivo = new File("Personas.txt"); FileReader fr = new FileReader(archivo); BufferedReader br = new BufferedReader(fr); String linea = br.readLine(); while (linea != null){ Usuario.mensajeConsola(linea); linea = br.readLine(); } br.close();
Clase FileWriter Permite escribir datos en un archivo, para esto se debe vincularse un objeto File. Constructores de la clase FileWriter: FileWriter <identificador> = new FileWriter(<File>) Escribe en un archivo desde cero, si el archivo estaba lleno lo resetea. FileWriter <identificador> = new FileWriter(<File>, true) Escribe en un archivo con contenido previo, conserva el contenido anterior. Ejemplo: FileWriter escritor = new FileWriter(archivo); Mtodos de la clase FileWriter: void write() = escribe un carcter o un String.
Prctica: 11
Fundamentos de Programacin
Pgina: 63
Ejemplo
de
escritura:
File archivo = new File(personas.txt); FileWriter fw = new FileWriter(archivo, true); fw.write(Lnea grabada \r\n); fw.close();
Consideraciones
importantes
Para
poder
utilizar
archivos
en
Java
se
debe
importar
el
paquete
java.io.*
import
java.io.*;
Excepciones:
Al
usar
archivos
hay
una
probabilidad
alta
de
tener
errores
(e.g.,
el
archivo
no
existe,
intentar
escribir
en
un
archivo
protegido,
etc.).
Por
lo
tanto,
debemos
manejar
esta
situacin
para
evitar
que
nuestros
programas
se
caigan
constantemente.
Para
solucionar
este
problema,
a
todos
los
mtodos
que
manipulen
sentencias
de
archivos
se
les
debe
agregar
en
su
definicin
throws
IOException.
Por
ejemplo,
si
el
mtodo
main
manipular
archivos,
entonces
debera
escribirse
as:
public static void main(String[] args) throws IOException { ... }
Ejemplo:
import iic1103Package.*; import java.io.*; public class Principal { public static void main(String[] args) throws IOException{ File archivo = new File("Personas.txt"); FileReader fr = new FileReader(archivo); BufferedReader br = new BufferedReader(fr); String linea = br.readLine(); while (linea != null){ Usuario.mensajeConsola(linea); linea = br.readLine();} br.close(); } }
Prctica: 11
Fundamentos de Programacin
Pgina: 64
ACTIVIDADES
1. Pruebe
los
ejemplos
definidos
en
el
marco
terico.
EJERCICIOS
1. Corregir
el
ejemplo
de
la
clase
FileReader
para
que
muestre
los
nombres
de
las
personas
completos.
Para
esto,
debe
crear
un
archivo
txt
con
un
listado
de
personas.
2. Desarrolle
un
programa
que
lea
un
archivo
con
la
siguiente
estructura:
Primera
lnea,
un
nmero
que
representa
la
cantidad
de
personas.
Dems
lneas,
listado
de
personas.
El
programa
debe
trasladas
el
listado
de
personas
a
un
arreglo
y
luego
mostrar
el
contenido
de
ese
arreglo.
3. Desarrolle
un
programa
que
permita
leer
un
archivo
que
contiene
los
nombres
y
tres
notas
de
un
grupo
de
alumnos,
por
ejemplo:
Juan
Gonzales
12
15
10
Gabriela
Prez
10
12
10
Luego
debe
calcular
el
promedio
de
cada
alumno
y
reescribir
el
archivo
con
el
promedio
respectivo,
por
ejemplo:
Juan
Gonzales
12
15
10
12.33
Gabriela
Prez
10
12
10
10,67
CUESTIONARIO
1. 2.
Qu
otras
clases
existen
para
manipular
archivos?
Qu
otros
mtodos
de
todas
las
clases
vistas
en
el
marco
terico,
existen?
REFERENCIAS
[1] Poornachandra
Sarang,
Java
Programming,
McGraw-Hill,
2012
[2] Harvey
Deitel
y
Paul
Daitel,
Cmo
programar
en
Java,
Prentice-Hall,
7ma.
Edicin,
2004
Prctica: 11
Fundamentos de Programacin
Pgina: 65
[3] David Carlson, Eclipse Distilled, Addison-Wesley Professional, 2005 [4] http://www.aprenderaprogramar.com/index.php?option=com_content&view=ar ticle&id=233:arrays-arreglos-multidimensionales-en-java-declaracion-y-uso- ejemplos-y-ejercicios-resueltos-cu00904c&catid=58:curso-lenguaje- programacion-java-nivel-avanzado-i&Itemid=180
Prctica: 11