Вы находитесь на странице: 1из 6

Universidad de Valle – Sede Norte del Cauca

Programa Académico de Tecnología en Sistemas de Información


Curso de Programación Interactiva

PRÁCTICA DE ARCHIVOS

Ejercicio 1:

Probar el siguiente código que creará un archivo con registros de numero de matrícula, nombre y
pedirá 3 calificaciones para después calcular el promedio.

import java.io.*;
import java.util.Scanner;
public class Archivos{
public static void main( String args[] )throws IOException{
Scanner leer = new Scanner(System.in);
DataOutputStream Archi = null;
int i;
int matricula=0;
String nombre=new String(“”);
int calif1;
int calif2;
int calif3;
double promedio;
try{
for (i=0; i<5; i++){
Archi = new DataOutputStream( new FileOutputStream(“../Archivo.dat”,true) );
System.out.println(“Escribe la matricula: “);
matricula = leer.nextInt();
System.out.println(“Escribe Nombre: “);
nombre = leer.next();
System.out.println(“Ingrese Calificacion 1: “);
calif1 = leer.nextInt();
System.out.println(“Ingrese Califiación 2″);
calif2 = leer.nextInt();
System.out.println(“Ingrese Calificacion 3″);
calif3 = leer.nextInt();
Archi.writeInt(matricula);
Archi.writeUTF(nombre);
Archi.writeInt(calif1);
Archi.writeInt(calif2);
Archi.writeInt(calif3);
Archi.close();
}
}
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {}
}
}

Ejercicio 2:

Probar este código que mostrará el contenido del archivo creado en el punto anterior:

import java.io.*;
public class LeerArchivos{
public static void main( String args[] )throws IOException{

DataInputStream Archi = null;

int matricula=0;
String nombre=new String(“”);
int calif1;
int calif2;
int calif3;
double promedio;
try{
Archi = new DataInputStream( new FileInputStream(“../Archivo.dat”) );
while (true){
matricula = Archi.readInt();
System.out.println(“Matricula: “+matricula+” “);
nombre = Archi.readUTF();
System.out.println(“Nombre: “+nombre+” “);
calif1= Archi.readInt();
System.out.println(“Calificacion 1: “+calif1+” “);
calif2= Archi.readInt();
System.out.println(“Calificacion 2: “+calif2+” “);
calif3= Archi.readInt();
System.out.println(“Calificacion 3: “+calif3+” “);
System.out.println(„n‟);
int suma = calif1 + calif2 + calif3;
promedio = suma/3;
System.out.println(“El promedio es: “+promedio+”n”);
}
}
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {}
Archi.close();

}
}

Ejercicio 3:

El proceso de lectura de un archivo de texto es similar a la lectura desde el dispositivo estándar.


Creamos un objeto entrada de la clase FileReader en vez de InputStreamReader. El final del
archivo viene dado cuando la función read devuelve -1. El resto del código es similar.

FileReader entrada=null;
StringBuffer str=new StringBuffer();
try {
entrada=new FileReader("ArchivoApp2.java");
int c;
while((c=entrada.read())!=-1){
str.append((char)c);
}
}catch (IOException ex) {}
Para mostrar el archivo de texto en la pantalla del monitor, se imprime el contenido del objeto str
de la clase StringBuffer.

System.out.println(str);
Una vez concluído el proceso de lectura, es conveniente cerrar el flujo de datos, esto se realiza en
una claúsula finally que siempre se llama independientemente de que se produzcan o no errores
en el proceso de lectura/escritura.

}finally{
if(entrada!=null){
try{
entrada.close();
}catch(IOException ex){}
}
}
El código completo de este ejemplo es el siguiente:

public class ArchivoApp2 {


public static void main(String[] args) {
FileReader entrada=null;
StringBuffer str=new StringBuffer();
try {
entrada=new FileReader("ArchivoApp2.java");
int c;
while((c=entrada.read())!=-1){
str.append((char)c);
}
System.out.println(str);
System.out.println("--------------------------------------");
}catch (IOException ex) {
System.out.println(ex);
}finally{
//cerrar los flujos de datos
if(entrada!=null){
try{
entrada.close();
}catch(IOException ex){}
}
System.out.println("el bloque finally siempre se ejecuta");
}
}
}

Ejercicio 4:

Los pasos para leer y escribir en disco son los siguientes:

Se crean dos objetos de las clases FileReader y FileWriter, llamando a los respectivos constructores
a los que se les pasa los nombres de los archivos o bien, objetos de la clase File, respectivamente
entrada=new FileReader("ArchivoApp3.java");
salida=new FileWriter("copia.java");
Se lee mediante read los caracteres del flujo de entrada, hasta llegar al final (la función read
devuelve entonces -1), y se escribe dichos caracteres en el flujo de salida mediante write.
while((c=entrada.read())!=-1){
salida.write(c);
}
Finalmente, se cierran ambos flujos llamando a sus respectivas funciones close en bloques
try..catch
entrada.close();
salida.close();
El código completo de este ejemplo que crea un archivo copia del original, es el siguiente

import java.io.*;

public class ArchivoApp3 {


public static void main(String[] args) {
FileReader entrada=null;
FileWriter salida=null;

try {
entrada=new FileReader("ArchivoApp3.java");
salida=new FileWriter("copia.java");
int c;
while((c=entrada.read())!=-1){
salida.write(c);
}
}catch (IOException ex) {
System.out.println(ex);
}finally{
//cerrar los flujos de datos
if(entrada!=null){
try{
entrada.close();
}catch(IOException ex){}
}
if(salida!=null){
try{
salida.close();
}catch(IOException ex){}
}
System.out.println("el bloque finally siempre se ejecuta");
}
}
}

Ejercicio 5:

Cree una aplicación que permita manejar la información de los empleados de una
Institución Educativa, sabiendo que existen dos tipos de empleado: Docentes y
Administrativos. De todos los empleados se debe conocer su documento de identidad
(texto), Nombre y Salario. De los docentes se debe conocer además su mayor título
universitario, unidad académica a la que está asignado. De los administrativos se debe
conocer: Cargo y tipo de cargo (directivo, coordinador, profesional, técnico).

Su aplicación debe permitir asignar/modificar salarios de los empleados (Use excepciones


para impedir que se ingrese un valor por debajo de 500 mil pesos), consultar salarios,
asignar/consultar todos los demás datos.

Adicionalmente, debe existir una interfaz para manejar un sistema de préstamos. La interfaz
debe contener los métodos asignarPrestamo y visualizarPrestamo.
Debe crear una excepción que permita validar que el préstamo no supere 10 veces el valor
del salario.

La aplicación debe permitir almacenar la información en un archivo, y consultarla.

Вам также может понравиться