Documente Academic
Documente Profesional
Documente Cultură
Prezentare 12:
Input/Output
Fisiere text
PROGRAMARE ORIENTATA
OBIECT
2020
Streams
07.12.2020 POO 2
Streams
ierarhia ‘byte’
InputStream
(clasa abstracta)
Reader ierarhia ‘character’
InputstreamReader
(clasa abstracta)
07.12.2020 POO 3
Streams DataInputStream
ierarhia ‘byte’
OutputStream
(clasa abstracta) DataInput
Writer ierarhia ‘character’
OutputStreamWriter
(clasa abstracta)
BufferedOutputStream PrintStream
DataOutputStream DataOutput
BufferedWriter PrintWriter
ObjectOutput ObjectOutputStream
07.12.2020 POO 4
Tipuri de fisiere in Java
scrierea/citirea fisierului
❑ Fisier binar
❑ recomandat in toate celelate cazuri
07.12.2020 POO 6
Fisiere text
07.12.2020 POO 7
Fisiere text
try {
fluxFis = new PrintWriter(numeFis);
}
catch(FileNotFoundException e) {
System.out.println("Eroare deschidere fisier" + numeFis);
System.out.println(e.getMessage());
}
07.12.2020 POO 8
Fisiere text
07.12.2020 POO 9
Fisiere text
❑ Inchidere fisier
fluxFis.close();
07.12.2020 POO 10
Fisiere text
❑ Fortare scriere
❑ scrierea in fisier se face utilizand un buffer
fluxFis.flush();
07.12.2020 POO 11
Fisiere text
❑ Adaugare in fisier
07.12.2020 POO 12
Fisiere text
❑ Adaugare in fisier
try {
FileWriter fw = new FileWriter(numeFis, true); //IOException ?
fluxFis = new PrintWriter(fw); //FileNotfoundException ?
}
/** sau fluxFis = new PrintWriter(new FileWriter(numeFis, true));
catch(FileNotFoundException e) {
System.out.println("Eroare deschidere fisier" + numeFis);
System.out.println(e.getMessage());
System.exit(0);
}
07.12.2020 POO 13
Fisiere text
❑ Adaugare in fisier
catch(IOException e) {
System.out.println("Eroare deschidere fisier" + numeFis);
System.out.println(e.getMessage());
System.exit(0);
}
fluxFis.println("...");
fluxFis.close();
07.12.2020 POO 14
Fisiere text
❑ Deschidere pentru citire
07.12.2020 POO 15
Fisiere text
07.12.2020 POO 16
Fisiere text
while (fisData.hasNextLine()) {
String linie = fisData.nextLine();
System.out.println(linie);
}
07.12.2020 POO 17
Fisiere text
07.12.2020 POO 18
Fisiere text
❑ Operatii cu fisiere text
if (fisDeschis) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Intro " + nrLin + "linii de date:");
for (int cont = 1; cont< = nrLin; cont++) {
System.out.print("Linie " + cont + ": ");
String linie = keyboard.nextLine();
fluxFis.println(linie);
}
fluxFis.close();
}
return fisDeschis;
}
07.12.2020 POO 19
Fisiere text
❑ Operatii cu fisiere text
public static boolean afisFis(String numeFis) {
boolean fisDeschis = true;
try {
Scanner fisData = new Scanner(new File(numeFis));
System.out.println("Fis " + numeFis + "contine liniile:");
while (fisData.hasNextLine()) {
String linie = fisData.nextLine();
System.out.println(linie);
}
fisData.close();
}
catch(FileNotFoundException e) {
fisDeschis = false;
}
return fisDeschis;
}
07.12.2020 POO 20
Fisiere text
❑ Clasa File
❑ utilizata pentru a:
07.12.2020 POO 21
Fisiere text
❑ Modificarea datelor
❑ citire dintr-un fisier, scriere in alt fisier
07.12.2020 POO 22
Fisiere standard input/output
07.12.2020 POO 23
Fisiere standard input/output
07.12.2020 POO 24
Fisiere text
❑ Redirectarea standard I/O
}
}
07.12.2020 POO 26