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 oricâte fluxuri, orice proces
putând fi atât 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 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

1
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) {

2
System.out.println.(“Eroare de intrare/iesire!”);
}
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

3
· 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);
}

4
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

  • 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
  • Fire de Executie
    Fire de Executie
    Document12 pagini
    Fire de Executie
    Madalina Gherman
    Î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
  • 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
  • Fisieretext
    Fisieretext
    Document29 pagini
    Fisieretext
    DeekyDZ
    Î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
  • Algoritmi Java PDF
    Algoritmi Java PDF
    Document237 pagini
    Algoritmi Java PDF
    Gicu Busuioc
    Încă nu există evaluări