Archivos en java

La Clase File

       En java muchas de las clases del framework java.io utilizan streams. Sin embargo, la clase File trata directamente con archivos. Usando la clase File usamos un objeto File para manipular la información de un fichero de disco. Esta información puede ser permiso, tiempo, fecha y una ruta de directorio. 

       Los archivos son la fuente y el destino principal de los datos de muchos programas, que también pueden tener permisos de uso por motivos de seguridad. Un directorio en java se trata como un archivo con una propiedad adicional que contiene una lista de nombres de archivo.

       Como File es una clase, necesitamos utilizar un constructor para crear un objeto File. En Java la clase File nos proporciona los siguientes constructores :

  • File(String ruta_de_directorio)
  • File(String  ruta_de_directorio, String nombre_del_archivo)
  • File(File objeto, String nombre_del_archivo)
  • File(URL objeto)
				
					// ejemplo 1 : creando objetos File 
import java.io.File;  // importar la clase file
public class File {
  public static void main(String[] args) {
    try {
      File ob1 = new File();
      File ob2 = new File("/");
      File ob3 = new File("/","nombre.txt");
      File ob4 = new File(ob2,"nombre2.txt");
  }
}
				
			

Métodos para obtener las propiedades estándar del objeto File.

       En la clase File tenemos metodos que utilizamos para recuperar las propiedades estandar de los objetos. Podemos utilizar estos metodos para obtener cosas como el nombre del archivo, su ubicacion, y si existe.
				
					import java.io.File;
public class File{
    public static void main(String args[])
    File uno = new File("\java\archivo_uno");
    
    System.out.prinln("Nombre del archivo:" + uno.getName());
    System.out.prinln("directorio:" + uno.getPath());
    System.out.prinln("directorio absoluto:" + uno.getAbsolutePath());
    System.out.prinln(uno.exists() ? "existe" : "no existe");
    System.out.prinln(uno.canWrite() ? "se puede escribir" : "no se puede escribir");
    System.out.prinln(uno.canRead() ? "se puede leer" : "no se puede leer");
}
/* Salida : 
Nombre del archivo : archivo_uno
directorio : java\archivo_uno
directorio absoluto : C: \java\archivo_uno
existe

*/
				
			

Usando la Clase FileReader

        Desde el paquete io podemos utilizar la clase FileReader para leer un flujo de caracteres desde los ficheros. Esta clase utiliza los caracteres especificado o los  caracteres por defecto de la plataforma para decodificar de bytes a caracteres. 

				
					/* Entrada : file.txt
a b c e a
*/

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

    // Crea un array de caracteres
    char[] array = new char[100];
    int count=0;
    try {
      // Crea un lector utilizando el FileReader
      FileReader input = new FileReader("file.txt");
      char c= 'a';
      
      //  Lee y almacena los caracteres en un array  
      input.read(array);
      //comprueba cuántas veces se encuentra el carácter 'a' en el fichero
      for (char a :  array) {
           System.out.print(a);
           if(a==c)
              count++;
      }

      System.out.println("Datos en el fichero: ");
      System.out.println(array);
      System.out.print("veces se encuentra el carácter 'a': "+count);
      // Closes the reader
      input.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}
				
			

Usando la Clase BufferReader

        Desde el paquete io podemos