Documente Academic
Documente Profesional
Documente Cultură
Fluxuri
Fluxuri
Fluxurile Java pun la dispozi]ie modalitatea prin care dou\ sau mai multe
procese pot comunica f\r\ a avea informa]ii unul despre cel\lalt. Mai mult,
prin fluxuri este posibil\ comunicarea între dou\ sau mai multe fire de
execu]ie ale aceleia[i aplica]ii. Fluxurile sunt secven]e de octe]i (8 bi]i).
Fluxuri de intrare
BufferedInputStream cite[te datele dintr-un buffer
ByteArrayInputStream cite[te octe]ii de date într-o matrice de octe]i
DataInputStream cite[te dintr-un flux de intrare obiecte, nu [iruri de
octe]i
FileInputStream cite[te date dintr-un fi[ier
FilterInputStream
InputStream
LineNumberInputStream
PipedInputStream
PushBackInputStream
SequenceInputStream
StringBufferInputStream
1
A. Metode care func]ioneaz\ cu toate fluxurile de intrare :
· read() - cite[te date dintr-un flux de intrare
· skip() - ignor\ unele date din fluxul de intrare
· markAvailable() - testeaz\ dac\ metoda mark() este disponibil\
pentru fluxul de intrare respectiv
· close() - închide un flux de intrare
B. Metode a c\ror func]ionare nu este garantat\ pentru toate fluxurile de
intrare :
· available() - determin\ cantitatea de date disponibile într-un flux
de intrare
· mark() - marcheaz\ în fluxul de intrare un punct la care se poate
reveni ulterior
· reset() - revine la un punct dpecificat în fluxul de intrare
Read
int read ();
int read (byte[] buffer)
int read (byte[] buffer, int offset, int length)
Skip
long skip (long numar_octeti)
Exemplu:
public long skipRecords(int num) {
int recordSize = 512 ;
long retCode = 0 ;
try {
//sare peste num inregistrari
retCode = MyStream.skip(num * recordSize);
//calc nr. de inregistrari peste care a sarit
if retCode > 0 {
retCode /= recordSize ;
}
catch (IOException e) {
System.out.println.(“Eroare de intrare/iesire!”);
}
return (retCode);
}
2
Exemplu:
public long closeStream() {
try MyStream.close()
catch (IOException e) {
System.out.println(“Eroare la inchiderea
fluxului”);
}
}
Fluxuri de ie[ire
3
Write
int write ();
int write (byte[] buffer)
int write (byte[] buffer, int offset, int length)
try {
dest = new FileOutputStream(args[1]);
octet = 0;
//citesc fisierul caracter cu caracter
while (octet != -1) {
try {
octet = sursa.read();
dest.write(octet);
System.out.print((char)octet);
}
catch (IOException e) {
System.out.println("Eroare de
intrare/iesire");
System.exit(2);
}
} //while
}//try
catch (IOException e) {
System.out.println("Fisierul " + args[1] + " nu
a putut fi creat !");
System.exit(2);
}
}//try
4
catch (FileNotFoundException e) {
System.out.println("Fisierul " + args[0] + " nu a fost
gasit !");
System.exit(1);
}
}//main
}//class