Extras din curs
Clase pentru lucrul cu fisiere
O alta metoda de a crea obiecte de tip FIS sau FOS este de a folosi clasele File sau FileDescriptor, care se gasesca în java.io
Clasa File
Variabile:
pathSeparator The system dependent path separator string.
pathSeparatorChar The system dependent path separator character.
separator The system dependent file separator String. separatorChar The system dependent file separator character.
Ex:
Windows : separator = “/”, pathSeparator=”;”
UNIX : separator = “a”, pathSeparator=”:”
Obs: Aceste câmpuri sunt initializate cu valorile continute în proprietatile sistem : file.separator, path.separator
Constructori
File (String)
File(String, String)Creates a File object from the specified directory.
File(File, String) Creates a File object (given a directory Fileobject).
Metode
canRead () Returns a boolean indicating whether or not a readable file exists.
canWrite() Returns a boolean indicating whether or not a writable file exists.
delete() Deletes the specified file.
equals(Object) Compares this object against the specified object.
exists() Returns a boolean indicating whether or not a file exists.
getAbsolutePath() Gets the absolute path of the file.
getName() Gets the name of the file.
getParent() Gets the name of the parent directory.
getPath() Gets the path of the file.
hashCode() Computes a hashcode for the file.
isAbsolute() Returns a boolean indicating whether the file name is absolute.
isDirectory() Returns a boolean indicating whether or not a directory file exists.
isFile() Returns a boolean indicating whether or not a normal file exists.
lastModified() Returns the last modification time.
length() Returns the length of the file.
list() Lists the files in a directory.
list(FilenameFilter) Uses the specified filter to list files in a directory.
mkdir() Creates a directory and returns a boolean indicating the success
mkdirs() Creates all directories in this path.
renameTo(File) Renames a file and returns a boolean indicating whether or not ...
toString() Returns a String object representing this file's path
Crearea de fluxuri folosind File
File f_in = new File(“in.txt”)
FileInputStream st_in = new FileInputStream(f_in)
Folosirea filtrelor
Daca obiectul de tip File este un director se poate folosi metoda list împreuna cu un filtru definit ca o instanta a unei clase ce implementeaza interfata FilenameFilter. Aceasta interfata declara o singura metoda :
public boolean accept(File dir, String numeFis)
si trebuie implementata astfel încât sa decida daca fisierul numeFis aflat în directorul dir trece sau nu de filtru.
Exemplu:
String director = “.”;
File fDirector = new File(director);
FilenameFilter filtru = new FiltruFisiereText();
String listaSursest = fDirector.list(filtru);
//listeaza toate fisierele .txt din directorul curent
class FiltruFisiereText implements FilenameFilter {
public boolean accept(File dir, String numeFis) {
return (numeFis.endsWith(“.txt”));
}
}
Succesiuni de fluxuri de intrare
Folosind clasa SequenceInputStream se poate crea un flux dintr-o enumerare de alte fluxuri. Un exemplu uzual este concatenarea mai multor fisiere :
FileOutputStream rez = FileOutputStream(argss0t)
Vector fisiereIn = new Vector(args.length - 1)
for(int i=1; i<args.length; i++)
fisiereIn.addElement(new FileInputStream(argssit));
SequenceInputStream in = new SequenceInputStream(fisiereIn.elements());
while ((c=in.read() > -1))
rez.write(c);
Citire si scriere cu zone tampon
Clasa BufferedInputStream citeste în avans date si le memoreaza într-o zona tampon (buffer). Atunci când se executa o operatie read(), octetul citit va fi preluat din buffer. In cazul în care buffer-ul este gol citirea se face direct din flux si, odata cu citirea octetului, vor fi memorati în buffer si octetii care îi urmeaza. Similar, se lucreaza si cu clasa BufferedOutputStream.
Aceste doua clase sunt folosite prin suprapunere de fluxuri. Ex:
BufferedOutputStream = new BufferedOutputStream(
new FileOutputStream(“out.dat”), 1024)
Preview document
Conținut arhivă zip
- IO si Fisiere in Java.doc