Vous êtes sur la page 1sur 30

Lectura y

escritura de
archivos en
java
Instituto Tecnológico Superior de San Martín
Texmelucan

Ingeniería en Sistemas Computacionales

Alumno: Rodrigo García Hernández


Docente: L.C.C. Ivan Rafael Sánchez Juárez
Índice
Introducción
En ocasiones cuando se desarrolla un programa,
puede ser que se necesite manipular archivos, por
lo que Java brinda una serie de clases y métodos
que facilitan el manejo de los archivos. En este
caso se pueden manejar por medio de flujos de
caracteres o bytes. En esta ocasión esta
investigación se centro en el manejo de archivos
por medio de bytes.
Archivo
⬡ Es un objeto en una computadora que puede
almacenar información, configuraciones o
comandos.
⬡ Puede ser manipulado por el sistema operativo
o cualquier programa.
⬡ Debe tener un nombre único dentro de la
carpeta que lo contiene.
⬡ Comúnmente el nombre de un archivo contiene
un sufijo (extensión) que permite identificar el
tipo de archivo.
Flujo de datos
⬡ Las entradas y salidas de datos de java se
manejan mediante streams (flujos de datos).
⬡ Un stream es una conexión entre el programa
y la fuente (lectura) o el destino (escritura) de
los datos.
⬡ Existen 4 jerarquías de clases relacionadas con
los flujos de entrada y salida de datos.
∙ Flujos de bytes: las clases derivadas de
InputStream (lectura) y de
OutputStream (escritura), las cuales
manejan los flujos de datos como stream
de bytes.
∙ Flujos de caracteres: las clases derivadas
de Reader (lectura) y Writer (escritura),
las cuales manejan stream de caracteres.
Flujos de bytes

FileInputStream

LineNumberInputStream
FileOutputStream
PipedInputStream

DataInputStream

PipedOutputStream DataOutputStream
FilterInputStream

BufferedInputStream

InputStream ByteArrayInputStream OutputStream FilterOutputStream BufferedOutputStream

PushbackInputStream

SequenceInputStream
ByteArrayOutputStrea PushbackOutputStrea
m m

StringBufferInputStream

ObjectOutputStream

ObjectInputStream
Flujos de caracteres

BufferedWriter
LineNumberReade
BufferedReader
r

CharArrayWriter

CharArrayReader

FileReader OutputStreamWriter FileWriter

InputStreamReade
r
Writer FilterWriter
Reader PushbackReader

FilterReader
PipedWriter

PipedReader StringWriter

PrintWriter
StringReader
Lectura de
archivos
FileInputStream

⬡ Permite leer flujos de bytes desde un archivos


de texto plano. Hereda de la clase InputStream.
⬡ Típicamente representa archivos de texto
accedidos en orden secuencial, byte a byte.
Apertura de un FileInputStream

⬡ Para abrir un FileInputStream sobre un fichero,


se le da al constructor en String o un objeto
File.
⬡ Cualquiera de los dos constructores disponibles
en esta clase pueden lanzar una
FileNotFoundException.
Lectura de un FileInputStream
⬡ Una vez abierto el FileInputStream, se puede
leer con el método read(). Este método tiene
diversas opciones:
Método Descripción
int read(); Lee un byte y devuelve -1 al final del
stream.
int read(byte b[]); Llena todo el array, si es posible.
Devuelve el número de bytes leídos
o -1 si se alcanzó el final del stream.
int read(byte b[], int offset, int Lee longitud bytes en b comenzando
longitud); por b[offset]. Devuelve el número de
bytes leídos o -1 si alcanzó el final
del stream.
Cierre de FileInputStream

⬡ Existen dos opciones para cerrarlo:


∙ Explícitamente: Se utiliza el método close().
∙ Implícitamente: Cuando se recicla el objeto
(el garbaje collector se encarga de ello).
Ejemplo:
Escritura de
archivos
FileOutputStream

⬡ Esta clase permite crear y escribir un flujo de


bytes en un archivo de texto plano. Esta clase
hereda de la clase OutputStream.
Apertura de un FileOutputStream

⬡ Para abrir un objeto FileOutputStream, se tienen


las mismas posibilidades que para abrir un
fichero stream de entrada. Se le da al
constructor un String o un objeto File.
Escribir en un FileOutputStream
⬡ Una vez abierto el fichero, se pueden escribir
bytes de datos utilizando el método write().

Método Descripción
void write (int b); Escribe un byte.
void write (byte b[]); Escribe todo el array, si es posible.
void write (byte b[], int offset, int Escribe longitud bytes en b
longitud); comenzando por b[offset].
Cierre de FileOutputStream

⬡ Se puede realizar de las siguientes maneras:


∙ Explícitamente: Con el método close().
∙ Implícitamente: Dejando que el sistema
cierre el archivo cuando se recicle el objeto.
Ejemplo
Antes de
ejecutar el
programar.

Ejecución del
programa.

Al finalizar la
ejecución del
programa,
Conclusión
El manejo de archivos proporciona grandes
ventajas como la persistencia de los datos que se
usen en los programas, así como el uso de la
información que contienen estos para que el
programa pueda realizar diversas actividades. Por
esta razón es importante comprender como se
usan estas clases y métodos.
Referencias
bibliográficas
⬡ Nakayama, A., & Solano, J. A. (2017, abril 3). Guía
práctica de estudio 11: Manejo de archivos. Recuperado
12 de mayo de 2020, de http://profesores.fi-b.unam.mx/
annkym/LAB/poo_p11.pdf
⬡ Martin, R. H. J. (s. f.). Manejo de Archivos en Java.
Recuperado 12 de mayo de 2020, de https://
www.academia.edu/29669849/
Manejo_de_Archivos_en_Java
⬡ Cortés, A. (2013, marzo 31). Entrada/Salida con ficheros
en Java. Recuperado 12 de mayo de 2020, de
http://www.it.uc3m.es/java/2012-13/resources/java-file-
io/java-file-io_es.pdf