Clasa File nu se refera doar la un fisier ci poate reprezenta fie un fisier anume, fie multimea fisierelor dintr-un director. O instanta a acestei clase poate sa reprezinte asadar:un fisier sau un director. Specificarea unui fisier/director se face prin introducerea caii absolute spre acel fisier sau a caii relative fata de directorul curent. Acestea trebuie sa respecte conventiile de specificare a cailor si numelor fisierelor de pe masina gazda. Utilitate clasei File consta în furnizarea unei modalitati de a abstractiza dependentele cailor si numelor fisierelor fata de masina gazda precun si punerea la dispozitie a unor metode pentru lucrul cu fisere si directoare la nivelul sistemului de operare.

Astfel, în aceasta clasa vom gasi metode pentru testarea existentei, stergerea, redenumirea unui fisier sau director, crearea unui director, listarea fisierelor dintr-un director, etc. In plus majoritatea constructorilor fluxurilor care permit accesul la fisiere accepta ca argument un obiect de tip File în locul unui sir ce reprezinta numele fisierului accesat.

    File f_in = new File("fis.in");
    FileInputStream st_in = new FileInputStream(f_in);

Metodele mai importante ale clasei File sunt:

 boolean isDirectory( )
 boolean isFile( ) 

Testeaza daca un obiect File reprezinta un fisier sau un director

 String getName( )
 String getPath( )
 String getAbsolutePath()
 String getParent() 

Afla numele (fara cale), calea fisierului sau directorului reprezentat de obiectul respectiv

 boolean exists( )
 boolean delete( )
 boolean mkdir( )
 boolean mkdirs( )
 boolean renameTo(File dest) 

Testeaza daca exista un anumit fisier/director

  • Sterge fisierul/directorul reprezentat de obiect

  • Creeaza un director

  • Creeaza o succesiune de directoare

  • Redenumeste un fisier/director

 String[] list( )
 String[] list (FilenameFilter filter ) 

Creeaza o lista cu numele fisierelor dintr-un director

  • Creeaza o lista cu numele fisierelor dintr-un director filtrate dupa un anumit criteriu specificat.

 boolean canRead( )
 boolean canWrite( ) 

Testeaza daca un anumit fisier poate fi folosit pentru citire, respectiv scriere

 long length( )
 long lastModified( ) 

Afla lungimea si data ultimei modificari a unui fisier.

Exemplu: Listarea fisierelor din directorul curent

public class DirList {
    public static void main(String[] args) {
        try {
            File director = new File(".");
            String[] list;
            list = director.list();

            for(int i = 0; i < list.length; i++)
                System.out.println(list[i]);
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}

Exemplu: Utilizarea unui filtru de nume de fisiere pentru a afisa fisierle cu extensia .class din directorul curent

class ClassFileFilter implements FilenameFilter 
{
    public boolean accept(File dir, String nume)
    {
        return nume.endsWith(".class");
    }
}

public class filter_list 
{
    public static void main(String args[])
    {
        File dir_curent = new File("/path/to/dir");
        String lista_file[] = dir_curent.list(new ClassFileFilter());

        for(int i = 0; i < lista_file.length;i++)
            System.out.println(lista_file[i]);
    }
}

Back to Top