Академический Документы
Профессиональный Документы
Культура Документы
Oscar Bedoya
oscarbed@eisc.univalle.edu.co
Archivos
Archivos
Clase File
• Resulta útil para recuperar información acerca de un archivo o
directorio, entre la que se encuentra
-Longitud del archivo en bytes
-Fecha y hora de la última modificación
-La ruta absoluta
-En caso de ser un directorio, se puede conocer una lista con
los nombres de archivos que contiene
Además, cuando se tiene solo una referencia a un archivo o un
directorio, se puede conocer cuál de los dos es. También se puede
saber si realmente existe tal archivo o directorio
Archivos
Método Descripción
Clase File
PruebaFile
Archivos
Si es un archivo se
muestra la ruta, la
ruta absoluta y el
contenido del archivo
String nombreArchivo = campo.getText();
File objeto = new File(nombreArchivo);
if ( objeto.exists() ) {
if ( objeto.isFile() ) {
try {
BufferedReader entrada = new BufferedReader(new FileReader( objeto ) );
String texto;
areatexto.append( "\n\nCONTENIDO DEL ARCHIVO: \n" );
}
catch( IOException excepcion ) {
JOptionPane.showMessageDialog( this, "ERROR EN ARCHIVO",
"ERROR EN ARCHIVO", JOptionPane.ERROR_MESSAGE );
}
}
String nombreArchivo = campo.getText(); Se utilizan los métodos
File objeto = new File(nombreArchivo);
de la clase File
if ( objeto.exists() ) {
if ( objeto.isFile() ) {
try {
BufferedReader entrada = new BufferedReader(new FileReader( objeto ) );
String texto;
areatexto.append( "\n\nCONTENIDO DEL ARCHIVO: \n" );
}
catch( IOException excepcion ) {
JOptionPane.showMessageDialog( this, "ERROR EN ARCHIVO",
"ERROR EN ARCHIVO", JOptionPane.ERROR_MESSAGE );
}
}
Archivos
Si es un directorio, se
muestra su contenido
if ( objeto.isDirectory() )
{
String directorio[] = objeto.list();
donde permiso es un String que puede ser “r” para indicar que es de
solo lectura, “w” para escritura y “rw” para lectura y escritura
Archivos
String linea;
linea = archivo.readLine();
Archivos
TraductorX
Archivos
actual = tokens.nextToken();
tokens.hasMoreTokens()
Archivos
try{
Se crea un objeto de
RandomAccessFile archivo = new RandomAccessFile("data.txt", "r"); RandomAccessFile
linea = archivo.readLine(); para leer del archivo
int encontrado=0;
while(linea!=null && encontrado==0){
if (actual.equals(palabra.toUpperCase()) ){
encontrado=1;
TFTraduccion.setText(tokens.nextToken());
}
else
linea=archivo.readLine();
}
}
String linea = new String();
String palabra = TFPalabra.getText();
try{
RandomAccessFile archivo = new RandomAccessFile("data.txt", "r");
linea = archivo.readLine();
int encontrado=0;
while(linea!=null && encontrado==0){
Archivos +
data.txt
Archivos
if (resultado == JFileChooser.CANCEL_OPTION)
System.out.println("No seleccionó ningun archivo");
if (resultado == JFileChooser.APPROVE_OPTION)
File nombreArchivo=selectorArchivo.getSelectedFile();
Archivos
if (resultado == JFileChooser.CANCEL_OPTION)
System.out.println("No seleccionó ningun archivo");
if (resultado == JFileChooser.APPROVE_OPTION)
//procesar informacion
if (nombreArchivo==null || nombreArchivo.getName().equals(""))
JOptionPane.showMessageDialog(null, "Nombre de archivo incorrecto”);
else
{
try
{
RandomAccessFile r = new RandomAccessFile( nombreArchivo , "r");
String linea=r.readLine();
while (linea!=null){
areatexto.append("\n" + linea);
datos.addElement(linea);
linea = r.readLine();
}
r.close();
}
catch(IOException e){ System.out.println("Error al abrir el archivo"); }
}
}
JFileChooser selectorArchivo= new JFileChooser();
int resultado = selectorArchivo.showOpenDialog(this);
if (resultado == JFileChooser.CANCEL_OPTION)
System.out.println("No seleccionó ningún archivo");
if (resultado == JFileChooser.APPROVE_OPTION)
{
File nombreArchivo = selectorArchivo.getSelectedFile() ; Se maneja el caso en que
if (nombreArchivo==null || nombreArchivo.getName().equals(""))
no escriba un nombre de
JOptionPane.showMessageDialog(null, "Nombre de archivo incorrecto”); archivo válido
else
{
try
{
RandomAccessFile r = new RandomAccessFile( nombreArchivo , "r");
String linea=r.readLine();
while (linea!=null){
areatexto.append("\n" + linea);
datos.addElement(linea);
linea = r.readLine();
}
r.close();
}
catch(IOException e){ System.out.println("Error al abrir el archivo"); }
}
}
JFileChooser selectorArchivo= new JFileChooser();
int resultado = selectorArchivo.showOpenDialog(this);
if (resultado == JFileChooser.CANCEL_OPTION)
System.out.println("No seleccionó ningún archivo");
if (resultado == JFileChooser.APPROVE_OPTION)
{
File nombreArchivo = selectorArchivo.getSelectedFile() ;
if (nombreArchivo==null || nombreArchivo.getName().equals(""))
JOptionPane.showMessageDialog(null, "Nombre de archivo incorrecto”);
else
{
try
{
RandomAccessFile r = new RandomAccessFile( nombreArchivo , "r");
String linea=r.readLine();
while (linea!=null){
areatexto.append("\n" + linea); Cada línea del archivo se
datos.addElement(linea); guarda temporalmente
linea = r.readLine(); en un vector
}
r.close();
}
catch(IOException e){ System.out.println("Error al abrir el archivo"); }
}
}
Archivos
• Se declara el flujo
PrintStream flujoSalida = null;
• Se declara el flujo
PrintStream flujoSalida = null;
Archivos
ver parte del oyente para guardar
Archivos
Problema: Desarrollar una aplicación Java que permita manejar los datos
de los estudiantes. La aplicación debe permitir la búsqueda, adición y
consulta de los estudiantes. La información se debe almacenar en un
archivo
Archivos1 +
estudiantes.txt
Archivos
Archivos1
ver método buscarEstudiante
Archivos
• Escribir en el archivo
file.writeBytes(datosEstudiante);
• Cerrar el archivo
file.close();
Archivos
• Escribir en el archivo
file.writeBytes(datosEstudiante);
• Cerrar el archivo
file.close();
•seek permite ubicarse en la
posición indicada
Archivos2
public class Estudiante
{
private String codigo, nombre;
private int edad;
private double promedio;
try{
RandomAccessFile file = new RandomAccessFile("estudiantes.txt", "r");
String linea = file.readLine();
while(linea!=null){
Se llama a este método
StringTokenizer tokens = new StringTokenizer(linea, "\t"); en el constructor
while (tokens.hasMoreTokens()){
linea=file.readLine();
}
}
catch(IOException e){ System.out.println("Error al abrir el archivo");
}
}
Archivos
Adicionar un estudiante
consiste en agregarlo al vector
Archivos2
ver oyente adicionar, buscar y eliminar
public static void guardarDatos()
{
try{
flujo= new PrintStream(new FileOutputStream("estudiantes.txt") );
}
catch (IOException e) { System.out.println("Error al abrir el archivo"); }
try{
flujo.flush();
flujo.close();
Para guardar los datos, se escribe,
} línea por línea, el contenido del
vector
public static void main(String[] args)
{
Archivos2 aplicacion = new Archivos2();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
Se modifica el método
windowClosing para que haga el
llamado al método guardarDatos()