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 InputStream 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

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 Exemplu:
long skip (long numar_octeti) 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
  • Intrări / Ieșiri În Java. Fișiere: Obiective
    Intrări / Ieșiri În Java. Fișiere: Obiective
    Document9 pagini
    Intrări / Ieșiri În Java. Fișiere: Obiective
    Mihai Matusa
    Î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 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
  • 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
  • Lucrarea 4
    Lucrarea 4
    Document15 pagini
    Lucrarea 4
    Simona Radu
    Încă nu există evaluări
  • ! Help Java
    ! Help Java
    Document50 pagini
    ! Help Java
    Mircea Tirziu
    Î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
  • Analiza Si Proiectarea Algoritmilor
    Analiza Si Proiectarea Algoritmilor
    Document237 pagini
    Analiza Si Proiectarea Algoritmilor
    CrăciunOvidiu
    Încă nu există evaluări