Sunteți pe pagina 1din 5

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).
Proces produc\tor flux de ie[ire Proces consumator
Proces consumator flux de intrare Proces produc\tor
fluxurile sunt unidirec]ionale, de la produc\tor la
consumator
fiecare flux are un singur proces produc\tor [i un singur
proces consumator
ntre dou\ procese pot exista oricte fluxuri, orice proces
putnd fi att produc\tor [i consumator n acela[i timp,
dar pe fluxuri diferite
consumatorul [i produc\torul nu comunic\ direct printr-o
interfa]\ de flux ci prin intermediul codului Java de tratare
a fluxurilor
Importan]a : ajut\ la citirea scrierea informa]iilor in
dispozitive de intrare/ie[ire, fi[iere, baze de date, etc.
Toate interfe]ele pentru fluxuri implementeaz\ un set de
metode de baz\, comune tuturor categoriilor de fluxuri.
Metodele standard pentru lucrul cu fluxuri se g\sesc\ n
pachetul java.io.

Fluxuri de intrare
BufferedInputStream
ByteArrayInputStream
DataInputStream
FileInputStream
FilterInputStream

cite[te datele dintr-un buffer


cite[te octe]ii de date ntr-o matrice de
octe]i
cite[te dintr-un flux de intrare obiecte, nu
[iruri de octe]i
cite[te date dintr-un fi[ier

InputStream
LineNumberInputStream
PipedInputStream
PushBackInputStream
SequenceInputStream
StringBufferInputStream

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!);
2

}
return (retCode);
}

Close - nchide un flux de intrare (Java nchide automat


fluxurile la terminarea aplica]iei)
void close();

Exemplu:
public long closeStream() {
try MyStream.close()
catch (IOException e) {
System.out.println(Eroare la inchiderea
fluxului);
}
}

Available - determin\ dac\ o anumit\ cantitate de date poate


fi citit\ f\r\ blocarea fluxului de intrare.
int available()

Returneaz\ nr. de octe]i ce pot fi citi]i din fluxul de intrare f\r\


blocare.
Exemplu:
public boolean isRecordReady() {
int recordSize = 512 ;
boolean ret = false ;
try {
if (MyStream.available() >= recordSize)
ret = true;
}
catch (IOException e) { ... }
return ret;
}

Fluxuri de ie[ire
Clase pentru fluxuri de ie[ire :

FileOuputStream
BufferedOutputStream
ByteArrayOutputStream
DataOutputStream
FilterOutputStream
OutputStream

PipedOutputStream
PrintStream

Metode pentru fluxurile de ie[ire


write() - scrie date ntr-un flux de ie[ire
flush() - for]eaz\ scrierea datelor ntr-un canal de
redirectare
close() - nchide un flux de ie[ire
Write
int write ();
int write (byte[] buffer)
int write (byte[] buffer, int offset, int length)

Flush - for]eaz\ scrierea c\tre dispozitivul de ie[ire a datelor


stocate n zona tampon pentru un flux de ie[ire.
void flush();

Close - nchide un flux de ie[ire (Java nchide automat


fluxurile la terminarea aplica]iei)
void close();

RECOMANDARE: Operatiile read/write se recomand\ a fi


f\cute n fire de execu]ie separate care s\ nu blocheze
programul.
import java.io.*;
public class TestFlux {
public static void main(String args[]) {
FileInputStream s,sursa; //s este flux de intrare
FileOutputStream dest; //dest este flux de iesire
int octet;
try {
sursa = new FileInputStream(args[0]);
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
catch (FileNotFoundException e) {
System.out.println("Fisierul " + args[0] + " nu a fost
gasit !");
System.exit(1);
}
}//main
}//class

S-ar putea să vă placă și

  • Fisieretext
    Fisieretext
    Document29 pagini
    Fisieretext
    DeekyDZ
    Încă nu există evaluări
  • Algoritmi Java PDF
    Algoritmi Java PDF
    Document237 pagini
    Algoritmi Java PDF
    Gicu Busuioc
    Încă nu există evaluări
  • 4 Fluxuri
    4 Fluxuri
    Document10 pagini
    4 Fluxuri
    Dorw123
    Încă nu există evaluări
  • I/O Introducere
    I/O Introducere
    Document26 pagini
    I/O Introducere
    Anna Maria
    Încă nu există evaluări
  • CursJava 04 CristianIonita IO
    CursJava 04 CristianIonita IO
    Document12 pagini
    CursJava 04 CristianIonita IO
    Aysel-Ioana BATCOVEANU
    Încă nu există evaluări
  • 4 Serializare
    4 Serializare
    Document8 pagini
    4 Serializare
    Данилов Алина
    Încă nu există evaluări
  • Curs 13 POO
    Curs 13 POO
    Document9 pagini
    Curs 13 POO
    R0ckstar
    Încă nu există evaluări
  • Curs 12
    Curs 12
    Document26 pagini
    Curs 12
    Daniel Popa
    Încă nu există evaluări
  • Lab 5 Cazacu POO
    Lab 5 Cazacu POO
    Document4 pagini
    Lab 5 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • 7
    7
    Document23 pagini
    7
    ramsesaha
    Încă nu există evaluări
  • Cap13 C++
    Cap13 C++
    Document17 pagini
    Cap13 C++
    Felicia Sturza
    Încă nu există evaluări
  • Poo 12
    Poo 12
    Document26 pagini
    Poo 12
    Irina Paun
    Încă nu există evaluări
  • Lab11 POO Calc
    Lab11 POO Calc
    Document14 pagini
    Lab11 POO Calc
    akonbeast
    Încă nu există evaluări
  • Aplicatie Java Cu Fisiere
    Aplicatie Java Cu Fisiere
    Document2 pagini
    Aplicatie Java Cu Fisiere
    deianira
    Încă nu există evaluări
  • Java IE4
    Java IE4
    Document33 pagini
    Java IE4
    Cezar Barbu
    Încă nu există evaluări
  • Curs5 POO 2009 Protejat
    Curs5 POO 2009 Protejat
    Document24 pagini
    Curs5 POO 2009 Protejat
    Hainagiu Gianina
    Încă nu există evaluări
  • CursJava 01 CristianIonita
    CursJava 01 CristianIonita
    Document23 pagini
    CursJava 01 CristianIonita
    Aysel-Ioana BATCOVEANU
    Încă nu există evaluări
  • Studiu Individual Testare
    Studiu Individual Testare
    Document2 pagini
    Studiu Individual Testare
    daria
    Încă nu există evaluări
  • Seminar 02
    Seminar 02
    Document15 pagini
    Seminar 02
    Robert Adrian Pietroiu
    Încă nu există evaluări
  • Lab13 s1 An1 23 24
    Lab13 s1 An1 23 24
    Document29 pagini
    Lab13 s1 An1 23 24
    Alex Feisan
    Încă nu există evaluări
  • Fluxurile de Date
    Fluxurile de Date
    Document14 pagini
    Fluxurile de Date
    Roxana C. Livia
    Încă nu există evaluări
  • Programare Multiparadigma-Java 01 PDF
    Programare Multiparadigma-Java 01 PDF
    Document22 pagini
    Programare Multiparadigma-Java 01 PDF
    Alexandru-Gabriel RIZEA
    Încă nu există evaluări
  • POO C7 JavaIO
    POO C7 JavaIO
    Document48 pagini
    POO C7 JavaIO
    Claudiu Iftimi
    Încă nu există evaluări
  • Introducere in Java
    Introducere in Java
    Document57 pagini
    Introducere in Java
    Radu Ovidiu Candea
    Încă nu există evaluări
  • POO Limbajul Java Teorie Si Aplicatii
    POO Limbajul Java Teorie Si Aplicatii
    Document120 pagini
    POO Limbajul Java Teorie Si Aplicatii
    Daniel Rotari
    0% (1)
  • Serializarea
    Serializarea
    Document6 pagini
    Serializarea
    Gabi Sorin Sima
    Încă nu există evaluări
  • 02-Apeluri de Sistem
    02-Apeluri de Sistem
    Document66 pagini
    02-Apeluri de Sistem
    Andrei Alin
    Încă nu există evaluări
  • Algoritmi Paraleli Si Distribuiti
    Algoritmi Paraleli Si Distribuiti
    Document33 pagini
    Algoritmi Paraleli Si Distribuiti
    mihdragan
    Încă nu există evaluări
  • Fire de Executie
    Fire de Executie
    Document12 pagini
    Fire de Executie
    Madalina Gherman
    Încă nu există evaluări
  • SHELL Command Language For Programmers
    SHELL Command Language For Programmers
    Document31 pagini
    SHELL Command Language For Programmers
    Popescu Iulia
    Încă nu există evaluări
  • ch05 Threads
    ch05 Threads
    Document30 pagini
    ch05 Threads
    Andrei Măzărel
    Încă nu există evaluări
  • Serializarea
    Serializarea
    Document4 pagini
    Serializarea
    winchester lung
    Încă nu există evaluări
  • Curs 13 Java
    Curs 13 Java
    Document11 pagini
    Curs 13 Java
    Alexandra Somu
    Încă nu există evaluări
  • NIO2
    NIO2
    Document16 pagini
    NIO2
    Maria Țăranu
    Încă nu există evaluări
  • Java Cap 2
    Java Cap 2
    Document27 pagini
    Java Cap 2
    bgd_tunning6838
    100% (1)
  • Serializare C#
    Serializare C#
    Document23 pagini
    Serializare C#
    Simona Diana
    Încă nu există evaluări
  • L3 Java1
    L3 Java1
    Document8 pagini
    L3 Java1
    Alexandru Grigoriță
    Încă nu există evaluări
  • Elemente de Baza Ale Limbajului C
    Elemente de Baza Ale Limbajului C
    Document15 pagini
    Elemente de Baza Ale Limbajului C
    Bejan Bogdan
    Încă nu există evaluări
  • Aplicatii Ale Paralelismului de Date
    Aplicatii Ale Paralelismului de Date
    Document58 pagini
    Aplicatii Ale Paralelismului de Date
    Udrea Mihai Madalin
    Încă nu există evaluări
  • Curs1 Introducerejava 2018
    Curs1 Introducerejava 2018
    Document52 pagini
    Curs1 Introducerejava 2018
    garson2023deva
    Încă nu există evaluări
  • Subiecte SO
    Subiecte SO
    Document18 pagini
    Subiecte SO
    Alina Sînziana Nicolaescu
    Încă nu există evaluări
  • Curs 10
    Curs 10
    Document42 pagini
    Curs 10
    Daniel Popa
    Încă nu există evaluări
  • Laboratorul 5
    Laboratorul 5
    Document7 pagini
    Laboratorul 5
    ion
    Încă nu există evaluări
  • Fisiere - POO
    Fisiere - POO
    Document9 pagini
    Fisiere - POO
    Albu Daniela Gabriela
    Încă nu există evaluări
  • Sisteme de Operare
    Sisteme de Operare
    Document49 pagini
    Sisteme de Operare
    Bogdan Mihai Timofte
    Încă nu există evaluări
  • Fire de Executie in Python
    Fire de Executie in Python
    Document13 pagini
    Fire de Executie in Python
    Marius Ionescu
    Încă nu există evaluări
  • Laborator 12,13 PDF
    Laborator 12,13 PDF
    Document9 pagini
    Laborator 12,13 PDF
    Denis Minjineanu
    Încă nu există evaluări
  • POO Clase
    POO Clase
    Document5 pagini
    POO Clase
    Kng Ask
    Încă nu există evaluări
  • SMP
    SMP
    Document222 pagini
    SMP
    PetreCaracaleanu
    Încă nu există evaluări
  • Streamuri
    Streamuri
    Document24 pagini
    Streamuri
    mateidlv28
    Încă nu există evaluări
  • Python 3 - V1.2 PDF
    Python 3 - V1.2 PDF
    Document114 pagini
    Python 3 - V1.2 PDF
    mihaineag91
    Încă nu există evaluări
  • An1 Lab12 Sem2 20-21
    An1 Lab12 Sem2 20-21
    Document8 pagini
    An1 Lab12 Sem2 20-21
    Ioana
    Încă nu există evaluări
  • ! Help Java
    ! Help Java
    Document50 pagini
    ! Help Java
    Mircea Tirziu
    Încă nu există evaluări
  • Analiza Si Proiectarea Algoritmilor
    Analiza Si Proiectarea Algoritmilor
    Document237 pagini
    Analiza Si Proiectarea Algoritmilor
    CrăciunOvidiu
    Încă nu există evaluări