Fluxurile pentru lucrul cu fisiere
- Detalii
- Categorie: Programare Java
- Accesări: 3,039
Fluxurile pentru lucrul cu fisiere sunt cele mai usor de înteles. Clasele care implementeaza aceste fluxuri sunt urmatoarele:
- FileReader, FileWriter - caractere
- FileInputStream, FileOutputStream – octeti
Constructorii acestor clase accepta ca argument un obiect care sa specifice un anume fisier. Acesta poate fi un sir de caractere, on obiect de tip File sau un obiect de tip FileDescriptor.
Constructorii clasei FileReader:
public FileReader( String fileName ) throws FileNotFoundException public FileReader( File file ) throws FileNotFoundException public FileReader( FileDescriptor fd )
Constructorii clasei FileWriter:
public FileWriter( String fileName ) throws IOException public FileWriter( File file ) throws IOException public FileWriter( FileDescriptor fd ) public FileWriter( String fileName, boolean append ) throws IOException
Cei mai uzuali constructori sunt cei care primesc ca argument numele fisierului. Acestia pot provoca exceptii de tipul FileNotFoundException în cazul în care fisierul cu numele specificat nu exista. Din acest motiv orice creare a unui flux de acest tip trebuie facuta într-un bloc try sau metoda în care sunt create fluxurile respective trebuie sa arunce exceptiile de tipul FileNotFoundException sau de tipul superclasei IOException.
Exemplu:
Acest program copiaza caracter cu caracter continutul unui fisier în alt fisier:
import java.io.*; public class Flux { public static void main(String args[]) { FileInputStream in; //in este flux de intrare FileOutputStream out; //out este flux de iesire int ok; try { in = new FileInputStream(args[0]); try { out = new FileOutputStream(args[1]); ok = 0; //citesc fisierul caracter cu caracter while(ok != -1) { try { ok = in.read(); out.write(ok); System.out.print((char)ok); } catch (IOException e) { System.out.println(e.getMessage()); System.exit(1); } } //while }//try catch (IOException e) { System.out.println(e.getMessage()); System.exit(1); } }//try catch (FileNotFoundException e) { System.out.println(e.getMessage()); System.exit(1); } }//main }//clasa Flux