/* ************************************************************************* * Il Java ha anche una classe File, specializzata nel gestire files sulla * macchina host (quella su cui viene eseguito il programma), che e' molto * meno astratta di FileInputStream/FileOutputStream. * Fa riferimento ad un file sul disco, e serve in particolare per il * supporto di path e nomi file particolari della macchina specifica. * E' possibile anche avere informazioni sugli attributi del file, e le * directory sono considerate file listabili. * I metodi piu' importanti della classe File sono: * * * canRead() ; Restituisce true se e' leggibile, altrimenti false * * canWrite() ; Restituisce true se e' scrivibile, altrimenti false * * equals(Object) ; Confronta il file con un'altro * * exists() ; Restituisce true se il file esiste, altrimenti false. * * getPath() ; Restituisce il path (solo quello indicato da noi) * * getAbsolutePath() ; Restituisce il path assoluto (es: c:\javcors\..\..) * * isDirectory() ; Ritorna true se esiste ed e' una directory, altr. false. * * isFile() ; Ritorna true se esiste ed e' un file, altrim. false. * * length() ; Restituisce la lunghezza del file * * list() ; Lista i file di una directory. Restituisce un array di * Stringhe con i nomi. * * mkdir() ; Crea una dir e restit. true se ha avuto successo. * * renameTo(File) ; Rinomina un file e restit. true se ha successo. * * * Per istanziare un File basta passare il nome e/o path al costruttore: * * File MioFile1 = new File("Jlez6b.java"); * File MioFile2 = new File("c:/marietto/appunti/letterina.txt"); * * I metodi di java.io.File non causano eccezioni IOException, quindi non * sono necessari i try-catch. Se un'operazione non ha avuto successo i * metodi restituiscono false anziche' true, per informarci. * NOTA: I separatori di percorso su Unix sono "/", mentre su ms-dos sono * il backslash "\". In questo caso java permette di usare "/" anche su * ms-dos. * Proviamo qualche metodo di java.io.File, leggendo gli atributi di questo * sorgente, Jlez6b.java. ************************************************************************* */ import java.io.*; // Include le funzioni I/O standard di base. class Jlez6b { // Da qua inizia la classe Jlez6b public static void main(String args[]) // Definiamo il metodo Main. { // Inizio del main() // Gli oggetti File li dichiaro nel main() perche' siano accessibili in // tutto il suo {blocco}. File MioFile1 = new File("Jlez6b.java"); // Il file che mi interessa. // Come prima cosa controllo se il file esiste. if(MioFile1.exists()) { // Il file esiste, provo a leggere un po' di informazioni sul file.java System.out.println("\nInformazioni sul File " + MioFile1 + ":\n"); String percorso = MioFile1.getPath(); // Prendo il path String percorso2 = MioFile1.getAbsolutePath(); // e path assoluto System.out.println("Path = " + percorso); // E lo stampo System.out.println("Path assoluto = " + percorso2); // E lo stampo System.out.println("Lunghezza = " + MioFile1.length()); if(MioFile1.isDirectory()) System.out.println("File di tipo directory."); else System.out.println("File normale."); if(MioFile1.canRead()) System.out.println("File leggibile."); else System.out.println("File non leggibile."); if(MioFile1.canWrite()) System.out.println("File scrivibile."); else System.out.println("File non scrivibile."); System.out.println("Tutte le operazioni sono riuscite."); } else System.out.println("Il file " + MioFile1 + " non esiste!"); } // Fine del metodo principale Main() } // Fine della classe Jlez6b /* ************************************************************************* * Provate a far leggere altri file o file inesistenti per verificare. ************************************************************************* */