Logo Studenta

Práctica 11 V1

¡Este material tiene más páginas!

Vista previa del material en texto

Carátula para entrega de prácticas 
 
 
Facultad de Ingeniería 
 
 
Laboratorio de docencia 
 
 
Laboratorios de computación 
salas A y B 
 
 
Profesor: Saavedra Hernández Honorato Ing. 
 
Asignatura: Programación Orientada a Objetos 
 
Grupo: 1 
 
No de Práctica(s): 11 
 
Integrante(s): 
Ayala Trejo Albanya Yendalli Téllez González Jorge Luis 
Méndez Costales Luis Enrique Villamar Cortes Juan Antonio 
Santana Sánchez María Yvette Zecua Salinas Juan Carlos 
Téllez González Jorge Luis 
Villamar Cortes Juan Antonio 
Zecua Salinas Juan Carlos 
No. de Equipo de 
cómputo empleado: --- 
 
No. de Lista o Brigada: --- 
 
Semestre: 2020-2 
 
Fecha de entrega: 26/04/2020 
 
Observaciones: 
 
 
 
 
 CALIFICACIÓN: __________ 
Facultad de Ingenierı́a Programación Orientada a Objetos
Índice
1. Objetivo 2
2. Introducción 2
3. Archivos 2
3.1. Flujos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.2. Clase File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2.1. FileOutputStream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2.2. FileInputStream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2.3. FileWriter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2.4. BufferedWriter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2.5. PrintWriter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2.6. FileReader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2.7. InputStreamReader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.8. BufferedReader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3. StringTokenizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.4. Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.5. Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.6. Serialización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4. Conclusiones 13
1
Facultad de Ingenierı́a Programación Orientada a Objetos
1. Objetivo
Implementar el intercambio de datos lectura y escritura entre fuentes externas de entrada y/o salidas
y un programa en un lenguaje orientado a objetos.
2. Introducción
Los programas se tienen que comunicar con su entorno, tanto para obtener datos e información que se debe
procesar, para devolver los resultados obtenidos. Para manejar archivos se utiliza streams o flujos de datos
desde una fuente hasta un repositorio.
La fuente inicia el flujo por ello se le conoce como flujo de datos de entrada, el repositorio termina
el flujo por esto es conocido como el flujo de datos de salida, podemos comparar este comportamiento con
los nodos.
Figura 1: Streams o flujos de datos.
3. Archivos
Un archivo es un objeto en una computadora que puede almacenar información, configuraciones o co-
mandos, esto puede ser manipulado por un sistema operativos o por cualquier programa o aplicación. Los
archivos deben tener un nombre distinto para evitar confusiones, normalmente su nombre va seguido de su
extensión para saber que tipo de archivo es.
3.1. Flujos de datos
Las entradas y las salidas de datos en java se manejan mediante streams (flujos de datos). Un stream es una
conexión entre programa y la fuente o el destino de los datos (lectura y escritura respectivamente).
Existen 4 jerarquı́as destacables en java sobre flujos de entrada y salida de datos:
Flujo de bytes: las clases derivadas de InputStream (lectura) y de OutputStream (escritura) quienes
manejan los flujos de datos como stream de bytes.
2
Facultad de Ingenierı́a Programación Orientada a Objetos
Flujo de caracteres: las clases derivadas de Reader (lectura) y Writer (escritura), estas manejan los
stream de caracteres.
Estas clases de entrada y salida se agrupan en el paquete de java.io.
3.2. Clase File
La clase File permite manejar archivos o carpetas como crear y borrar tanto archivos como carpetas etc.
Al crear una instancia de la clase File no creamos un archivo o directorio, solo se crea una referencia
hacia un objeto de este tipo. La creación de archivos o carpetas se realizan de otra manera, una explı́cita,
invocando métodos concretos, para esta función se nombrarán los más útiles dentro del lenguaje:
exists()
createNewFile()
mkdir()
delete()
renameTo()
list()
Figura 2: Ejemplo de creación de un archivo de texto plano.
3
Facultad de Ingenierı́a Programación Orientada a Objetos
3.2.1. FileOutputStream
Esta clase permite crear y escribir un flujo de bytes en un archivo de texto plano, esta clase hereda de la
clase OutputStream.
Estructuras comunes:
FileOutputStream(String nombre)
FileOutputStream(String nombre, boolean añadir)
FileOutputStream(File archivo)
Figura 3: Ejemplo de escritura en un archivo de texto plano.
4
Facultad de Ingenierı́a Programación Orientada a Objetos
3.2.2. FileInputStream
Este permite leer flujo de bytes desde un archivo de texto plano y h ereda de la clase InputStream.
Sus constructores más comunes son:
FileInputStream(String nombre)
FileInputStream(File archivo)
Figura 4: Ejemplo de lectura en un archivo de texto plano.
5
Facultad de Ingenierı́a Programación Orientada a Objetos
3.2.3. FileWriter
Esta clase hereda de Writer y permite escribir un flujo de caracteres en un archivo de texto plano.
Figura 5: Ejemplo de escritura en un archivo de texto plano usando FileWriter.
3.2.4. BufferedWriter
Este tipo de clase deriva de la clase Writer y permite crear un buffer para realizar una escritura eficiente de
caracteres desde la aplicación hacia el archivo destino.
6
Facultad de Ingenierı́a Programación Orientada a Objetos
3.2.5. PrintWriter
La clase de este tipo deriva de Writer, permite escribir de forma sencilla en un archivo de texto plano y
contiene métodos de print y println, idénticos a los que se usan en System.out y el método close(), este
último cierra los stream de datos.
3.2.6. FileReader
La clase Reader se utiliza para obtener los caracteres ingresado desde una fuente, esta clase hereda de
Reader y permite leer flujo de caracteres de un archivo de texto plano.
Figura 6: Ejemplo de lectura en un archivo de texto plano usando FileReader.
7
Facultad de Ingenierı́a Programación Orientada a Objetos
3.2.7. InputStreamReader
Esta clase deriva de Reader que convierte los streams de bytes a streams de caracteres. System.in es el
objeto de la clase InputStream el cual recibe datos desde la entrada estándar del sistema.
3.2.8. BufferedReader
La clase BufferedReader deriva de la clase Reader, crea un buffer para realizar una lectura optima de ca-
racteres, contiene el método readLine que permite leer una lı́nea de texto y tiene como valor de retorno un
String.
Figura 7: Ejemplo de lectura de la entrada estándar (Teclado) usando BufferedReader.
8
Facultad de Ingenierı́a Programación Orientada a Objetos
3.3. StringTokenizer
Esta clase permite separar una cadena por palabras o por algún otro carácter, pertenece al paquete java.util.
Figura 8: Ejemplo de separación de una cadena de caracteres usando StringTokenizer.
9
Facultad de Ingenierı́a Programación Orientada a Objetos
3.4. Scanner
La clase Scanner permite leer flujos de bytes desde la entrada estándar (puede ser desde otra fuente), per-
tence al paquete java.util.
Los métodos destacados de esta clase son next() y hasNext(), siendo el next el método que obtiene
el siguiente elemento del flujo de datos, hasNext() verifica si el flujo de datos todavı́a posee elementos, si
esto es afirmativo o negativo regresa un boleano (true o false respectivamente).
La clase Scanner tiene un delimitador por defecto y es el espacio en blanco,sin embargo, esto es
posible cambiarlo por useDelimiter que recibe como parámetro un String que pasa a ser el delimitador.
Figura 9: Ejemplo de lectura y uso de un delimitador en la clase Scanner.
3.5. Console
Esta clase permite recibir flujos de dados desde la lı́nea de comandos lo que es conocido como la entrada
estándar, esta dentro del paquete java.io.
10
Facultad de Ingenierı́a Programación Orientada a Objetos
Métodos destacados que contiene:
readLine(): lee una cadena de caracteres hasta que encuentra un salto de lı́nea.
readPassword(): lee una cadena de caracteres hasta que encuentra el saldo de lı́nea, pero este oculta
los caracteres.
Figura 10: Ejemplo del uso de la clase Console.
Figura 11: Ejecución del ejemplo anterior en la lı́nea de comandos de Windows 10.
3.6. Serialización
Es considerada como un mecanismo para guardar objetos como una secuencia de bytes y poderlos re-
construir más adelante cuando estos sean necesarios, conservan por tanto su estado. Una caracterı́stica
importante de la serialización es que los atributos son mantenidos intactos.
Si un atributo hace referencia a un objeto, esta referencia es también serializable, los objetos que no
lo son se deben declarar con una palabra reservada transient para evitar que se intente serializar generando
11
Facultad de Ingenierı́a Programación Orientada a Objetos
con ello un error.
Figura 12: Clase SerializateDate.
Figura 13: Clase DeSerializateDate.
12
Facultad de Ingenierı́a Programación Orientada a Objetos
4. Conclusiones
Para esta práctica hemos logrado desarrollar el tema de archivos, implementando la lectura con clases como
FileReader y escritura que se sirve de clases como FileWriter, ası́ como los métodos más comunes para
lograr realizar estas modificaciones, entendimos también que java maneja los archivos como objetos esto
explica los métodos que vemos a detalle en la práctica.
Volvimos nuevamente a ver la clase Scanner que como podemos notar es muy conocida y útil dentro
de java ya que lee flujos de datos desde la entrada estándar, una novedad es la serialización puesto que en
java hay que recurrir a la terminal para poder efectuar de manera correcta.
Finalmente podemos asegurar que la práctica se desarrolló de manera eficiente y fue útil para modi-
ficar archivos de manera óptima.
Referencias
[1] Manejo de archivos. Recuperado de: http://lcp02.fi-b.unam.mx/static/docs/PRACTICAS_
POO/poo_p11.pdf. Fecha de consulta: 18/04/2020.
Los créditos de las fotografı́as pertenecen a sus respectivos autores. c©
LATEX
13
http://lcp02.fi-b.unam.mx/static/docs/PRACTICAS_POO/poo_p11.pdf
http://lcp02.fi-b.unam.mx/static/docs/PRACTICAS_POO/poo_p11.pdf

Continuar navegando

Materiales relacionados

175 pag.
23 pag.
Anexo ENTRADA Y SALIDA v4_1

User badge image

Materiales Generales