Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIVERSIDAD DE CÓRDOBA
IV SEMESTRE
ARCHIVOS
Definición de archivo:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
CURSO PROGRAMACIÓN II
UNIVERSIDAD DE CÓRDOBA
IV SEMESTRE
Ejercicio Propuesto:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class LeerEscribirArchivo {
private String rutaArchivo; //Atributo para asignar el nombre del archivo.
File archivo;
public void LeerEscribirArchivo(){ //Método constructor de la clase.
rutaArchivo = "";
}
public void setRutaArchivo(String nom){ //Método modificador para asignar el nombre del archivo
rutaArchivo = nom;
}
public String getRutaArchivo(){ //Método para obtener el nombre del archivo.
return rutaArchivo;
}
//Método para guardar los datos de tipo cadena pasados como parámetro en el archivo.
public void guardarArchivo(String dato) throws IOException{
//Se crea un objeto de la clase File llamado archivo y se pasa como parámetro al constructor de la
//clase File el nombre o ruta del archivo.
archivo = new File(getRutaArchivo());
BufferedWriter escribir; //Se declara un objeto de la clase BufferedWriter llamado escribir.
if(archivo.exists()) { //Si el archivo existe, se agrega el dato después de la última línea.
//Se crea el objeto de la clase BufferedWriter y se pasa a su constructor el objeto de la clase File.
escribir = new BufferedWriter(new FileWriter(archivo, true));
escribir.write(dato); //Se escribe el dato pasado como parámetro con el método write.
escribir.newLine(); //Para asignar una nueva línea en el archivo.
} else { //Si el archivo no existe, se crea y se le asigna el primer dato en el archivo.
escribir = new BufferedWriter(new FileWriter(archivo));
escribir.write(dato);
escribir.newLine();
CURSO PROGRAMACIÓN II
UNIVERSIDAD DE CÓRDOBA
IV SEMESTRE
}
escribir.close();
}
//Implementación del método que permite abrir el archivo para leer línea a línea los datos.
public String leerArchivo(String rutaArchivo) throws FileNotFoundException, IOException {
String linea; //variable para asignar cada línea del archivo.
String verDatosArchivo=""; //Variable par air almacenado toda la información del archive.
//Se crea un objeto de la clase FileReader para pasarlo como parámetro al constructor del objeto
//que se crea de la clase BufferedReader (leer).
FileReader fichero = new FileReader(rutaArchivo);
BufferedReader leer = new BufferedReader(fichero);
//Mientras que se pueda leer la línea, se va almacenado la información leída en cada línea, en la
//variable verDatosArchivo para posteriormente mostrarlos.
while((linea = leer.readLine())!= null) {
verDatosArchivo = verDatosArchivo+String.valueOf(linea+"\n");
}
leer.close();
return verDatosArchivo;
}
//Método para contabilizar el número de líneas almacenadas en el archivo.
public int cantidadLineasArchivo() throws FileNotFoundException, IOException{
int numeroLineas = 0;
String linea;
FileReader fichero = new FileReader(getRutaArchivo());
BufferedReader leer = new BufferedReader(fichero);
while((linea = leer.readLine())!= null) {
numeroLineas++;
}
leer.close();
return numeroLineas;
}
}
import java.io.File;
import java.io.IOException;
import javax.swing.JOptionPane;
public class Main {
//Método para visualizar el menú de opciones del programa.
public static int menu(){
int opcion = 0;
do{
opcion = Integer.parseInt(JOptionPane.showInputDialog("=== IMPLEMENTACIÓN DE
ARCHIVOS - OPCIÓN DEL MENÚ ===\n\n"
+"1. Guardar Nombres en el Archivo \n"+"2. Listar los Nombres del Archivo \n"+"3. Cantidad
de Nombres Guardados\n"+
CURSO PROGRAMACIÓN II
UNIVERSIDAD DE CÓRDOBA
IV SEMESTRE
"4. Informacion General del Archivo \n"+"5. Salir"+"\n \n Seleccione una opcion del 1 al
5"));
}while(opcion <= 0 || opcion > 5);
return opcion;
}
//Método que permite obtener información del archivo, creando un objeto de la clase File (inf) y
//utilizando sus métodos, como son getAbsolutePath() para ave la ruta absoluta del archivo y
//length() para conocer su tamaño.
public static void informeArchivo(LeerEscribirArchivo arch){
File inf = new File(arch.getRutaArchivo());
JOptionPane.showMessageDialog(null,"====== INFORMACÓN DEL ARCHIVO
======"+"\n"+"\n Ubicación: "+
inf.getAbsolutePath()+"\n Tamaño: "+ inf.length());
}
public static void main(String[] args) throws IOException {
int opcion;
LeerEscribirArchivo arch = new LeerEscribirArchivo();
arch.setRutaArchivo("D:\\personas.txt");
do{
opcion = menu();
switch(opcion) {
case 1:
String dato = JOptionPane.showInputDialog(null, "Digite el NOMBRE: ");
arch.guardarArchivo(dato);
break;
case 2:
JOptionPane.showMessageDialog(null,"====== NOMBRES DEL ARCHIVO
======"+"\n"+
arch.leerArchivo(arch.getRutaArchivo())+"\n");
break;
case 3:
JOptionPane.showMessageDialog(null,"====== NOMBRES DEL ARCHIVO
======"+"\n"+"\n"+"Se han registrado: "+
arch.cantidadLineasArchivo()+" Nombres \n\n");
break;
case 4:
informeArchivo(arch);
break;
case 5:
break;
}
}while(opcion != 5);
}
}