Sie sind auf Seite 1von 6

Universidad Nacional de Trujillo

Facultad de Ingeniería
Laboratorio de Autómatas y Compiladores
________________________________________________________________________________
La clase File.

La clase File sirve para representar archivos o directorios en el sistema de archivos de la plataforma
específica. Mediante esta clase pueden abstraerse las particularidades de cada sistema de archivos y
proporcionar los métodos necesarios para obtener información sobre los mismos.

public class java.io.File implements Serializable {

// Atributos
public static final String pathSeparator; // separador de paths
public static final char pathSeparatorChar; // separador de paths
public static final String separator; // separador de directorios en un path
public static final char separatorChar; // separador de directorios en un path

// Constructores
public File(String pathYNombre);
public File(String path, String nombre);
public File(File path, String nombre);

// Métodos
public boolean canRead(); // true si permite la lectura
public boolean canWrite(); // true si permite la escritura
public boolean delete(); // borrar el fichero
public boolean exists(); // true si existe el fichero
public String getAbsolutePath(); // obtiene el path absoluto
public String getCanonicalPath() throws IOException; // path canónico
public String getName(); // obtiene el nombre del fichero o directorio
public String getParent(); // obtiene el path del directorio padre
public String getPath(); // obtiene el path del fichero
public int hashCode(); // devuelve un código hash para el fichero
public native boolean isAbsolute(); // true si el path es absoluto
public boolean isDirectory(); // true si es un directorio y no un fichero
public boolean isFile(); // true si es un fichero
public long lastModified(); // Devuelve el momento de la última modificación
public long length(); // Devuelve el tamaño en bytes del fichero
public String[] list(); // Devuelve los ficheros de un directorio
public String[] list(FilenameFilter filtro); // igual que anterior con filtro
public boolean mkdir(); // Crea el directorio indicado
public boolean mkdirs(); // Crea todos los directorios del path necesarios
public boolean renameTo(File destino); // Cambia el nombre por destino
}

________________________________________________________________________________
Docente: Ing. Marcelino Torres Villanueva 1
Universidad Nacional de Trujillo
Facultad de Ingeniería
Laboratorio de Autómatas y Compiladores
________________________________________________________________________________
Ejemplo:

public static void main(String[] args) {


String nombreArchivo="F:\\ESTUDIO\\JAVA\\Archivos de Texto";

File f = new File(nombreArchivo);


System.out.println("pathSeparator: "+ File.pathSeparator);
System.out.println("pathSeparatorChar: "+File.pathSeparatorChar);
System.out.println("separator: "+File.separator);
System.out.println("separatorChar: "+File.separatorChar);
if(f.exists())
try {
System.out.println("canRead():"+f.canRead());
System.out.println("canWrite():"+f.canWrite());
System.out.println("getAbsolutePath():"+ f.getAbsolutePath());
System.out.println("getCanonicalPath():"+ f.getCanonicalPath());
System.out.println("getName():"+f.getName());
System.out.println("getParent():"+f.getParent());
System.out.println("getPath():"+f.getPath());
System.out.println("hashCode():"+f.hashCode());
System.out.println("isAbsolute():"+f.isAbsolute());
System.out.println("isDirectory():"+f.isDirectory());
System.out.println("isFile():"+f.isFile());
System.out.println("lastModified():"+ f.lastModified());
System.out.println("length():"+f.length());
} catch (IOException e) {
System.out.println(e);
}
else
System.out.println("No existe nombre de archivo o Directorio");
}

________________________________________________________________________________
Docente: Ing. Marcelino Torres Villanueva 2
Universidad Nacional de Trujillo
Facultad de Ingeniería
Laboratorio de Autómatas y Compiladores
________________________________________________________________________________
Archivos de Texto
Los archivos de texto plano (en inglés plain text) son aquellos que están compuestos únicamente por texto
sin formato, sólo caracteres. Estos caracteres se pueden codificar de distintos modos dependiendo de la
lengua usada. Algunos de los sistemas de codificación más usados son: ASCII, ISO-8859-1 o Latín-1,
Unicode, etc...
Se les conoce también como archivos de texto llano, o texto simple, por carecer de información destinada
a generar formatos (negritas, subrayado, cursivas, tamaño, etc.) y tipos de letra (por ejemplo, Arial,
Times, Courier, etc.). El término texto plano proviene de una traducción literal del término inglés plain
text, término que en lengua castellana significa texto simple o texto sencillo.
Las aplicaciones destinadas a la escritura y modificación de archivos de texto se llaman editores de texto

Archivos de texto en Java

Si se desea procesar datos de un archivo existente, se debe:


1. Abrir el archivo
2. Leer datos del archivo
3. Cerrar el archivo cuando se termine de trabajar con él

Para transferir algunos datos de ciertas variables a un archivo, se debe:


1. Abrir el archivo
2. Escribir los datos en el archivo
3. Cerrar el archivo cuando se termine de trabajar con él

Las clases de flujo están organizadas de la siguiente forma:

Writer
PrintWriter
FileWriter

Reader
BufferedReader
InputStreamReader
FileReader

Los programas que utilizan archivos deben contener la instrucción: import java.io.*;

Para Escribir en un archivo de texto requiere el uso apropiado de clases para crear el flujo de salida y
llamar a los métodos para escribir los datos. La clase FileWriter representa un archivo texto de salida.
La clase PrintWriter ofrece los métodos print y println similares a los de System que permiten escribir
datos en el archivo. Después de terminar de crear o utilizar un archivo es muy recomendable que se
cierre, ya que de lo contrario no se garantiza que los datos estarán almacenados en un dispositivo semi-
permanente

Para leer desde un archivos e usa la clase BufferedReader y para la entrada que no provenga de archivos
(desde el teclado y páginas Web) también se utiliza InputSreamReader.

________________________________________________________________________________
Docente: Ing. Marcelino Torres Villanueva 3
Universidad Nacional de Trujillo
Facultad de Ingeniería
Laboratorio de Autómatas y Compiladores
________________________________________________________________________________

Ejemplo: El siguiente programa crea un Archivo de texto y luego lo muestra en la Pantalla.

public class Main {

public static void escribir(String nombreArchivo)


{
FileWriter fw=null;
PrintWriter pw=null;

try{
fw = new FileWriter(nombreArchivo);
pw = new PrintWriter(fw);

pw.println("Hola que tal ");


pw.println("Esto es un archivo de prueba");
pw.println("para escribir en archivos de Texto");
pw.println("de Java");
pw.close();
}catch(IOException ex){
System.out.println(ex.getMessage());
}
}

public static void lectura01(String nombreArchivo)


{
FileReader fr=null;
BufferedReader br=null;
String linea=null;
try {
fr = new FileReader(nombreArchivo);
br= new BufferedReader(fr);
while ((linea = br.readLine()) != null)
System.out.println(linea);
br.close();
}
catch (IOException ex) {
System.out.println(ex.getMessage());
}

________________________________________________________________________________
Docente: Ing. Marcelino Torres Villanueva 4
Universidad Nacional de Trujillo
Facultad de Ingeniería
Laboratorio de Autómatas y Compiladores
________________________________________________________________________________

public static void lectura02(String nombreArchivo)


{
FileReader fr=null;
BufferedReader br=null;
char car;
int x;
try{
fr= new FileReader(nombreArchivo);
br= new BufferedReader(fr);
x=0;
while(x!=-1)
{
x=br.read();
car=(char)x;
System.out.print(car);
}
br.close();
}catch (IOException ex) {
System.out.println(ex.getMessage());
}

public static void main(String[] args) {


escribir("prueba.txt");
System.out.println("Leemos linea por linea");
System.out.println("========================");
lectura01("prueba.txt");
System.out.println("Leemos caracter por caracter");
System.out.println("=============================");
lectura02("prueba.txt");
}
}

Ejercicios de Archivos
1) Hacer un programa para que convierta lea un archivo de Texto y convierta su texto de
minúsculas a mayúsculas.
2) Escribir un programa que lea un archivo de texto y lo convierta en un archivo que tenga
primero el numero de línea y luego el texto. Por ejemplo si el archivo es :
Este es un
archivo de
texto
en Java
El resultado seria:
1: Este es un
2: archivo de
3: texto

________________________________________________________________________________
Docente: Ing. Marcelino Torres Villanueva 5
Universidad Nacional de Trujillo
Facultad de Ingeniería
Laboratorio de Autómatas y Compiladores
________________________________________________________________________________
4: en Java
3) Editar un archivo de texto plano (usando por ejemplo el Notepad) con el siguiente
formato:
001|Informatica|3|12
002|Computacion|4|16
003|Algoritmos y Estructura de Datos|3|18
Como se ve el archivo contiene, por cada línea, el código (un entero), el nombre, el
número de créditos y el promedio de los cursos llevados de un alumno. Los campos se
encuentran separados por el carácter ‘|’.
Se pide realizar un programa que lea el archivo y muestre en la pantalla de la siguiente
Manera:
Código nombre créditos promedio
001 informatica 3 12
002 Computacion 4 16
003 Algoritmos y Estructura de Datos3 18

Promedio Ponderado: XXX.XX

4) Hacer un programa que copie el contenido de un archivo en otro archivo. Los nombres de
los archivos origen y destino serán ingresados por teclado.
5) Hacer un programa para ingresar el nombre de un archivo de Texto y luego un carácter
y muestre todas las posiciones dentro del archivo en las que se encuentra.
6) Lea 2 archivos y únalos hacia un tercer archivo.
7) Lea 2 archivos y obtenga un archivo que esté formado por un carácter del primer
archivo y un carácter del segundo archivo alternadamente, hasta agotar los caracteres
de los archivos de origen. Si se acaba alguno de ellos pasar los caracteres restantes del
otro archivo al tercero.
8) Hacer un programa para ingresar el nombre de un archivo y reporte el numero de líneas,
y espacios en blanco que existen.
9) Una forma de encriptamiento muy utilizada es sustituir cada carácter por otro. El
programador puede definir una tabla que contenga el carácter original y otra tabla que
contenga el carácter por el cual se va a sustituir. Escriba un programa que permita
encriptar y desencriptar un archivo por sustitución con una tabla de equivalencia
definida por el programador.
10) Cuantos caracteres de cada tipo hay en un archivo dado?
Sugerencia: Defina un arreglo de 256 elementos, el subíndice indicara el valor unicode
del carácter leído.

11) Busque todas las ocurrencias de una palabra dentro de un archivo. Muestre la posición
donde se inicia la palabra
12) Escriba un programa que invierta el contenido de un archivo cualquiera.
13) Escribir un programa que lee un archivo de texto e imprime en pantalla las primeras n
líneas. Si n es mayor que el número de líneas presentes en el archivo de entrada,
imprime hasta la última que encuentre.
14) Escribir un programa similar al del ejercicio anterior, que imprime las últimas n líneas
leídas de un archivo de texto

________________________________________________________________________________
Docente: Ing. Marcelino Torres Villanueva 6

Das könnte Ihnen auch gefallen