Documente Academic
Documente Profesional
Documente Cultură
Fluxuri
Fluxuri
Fluxurile Java pun la dispoziie modalitatea prin care dou sau mai multe procese pot comunica
fr a avea informaii unul despre cellalt. Mai mult, prin fluxuri este posibil comunicarea ntre
dou sau mai multe fire de execuie ale aceleiai aplicaii. Fluxurile sunt secvene de octei (8 bii).
Proces productor flux de ieire Proces consumator
Proces consumator flux de intrare Proces productor
A.
citete
citete
citete
octei
citete
B.
read()
skip()
close()
markAvailable() - testeaz dac metoda mark() este disponibil pentru fluxul de intrare
respectiv
- nchide un flux de intrare
reset()
Read
int read ();
int read (byte[] buffer)
82
FileOuputStream
BufferedOutputStream
ByteArrayOutputStream
DataOutputStream
FilterOutputStream
OutputStream
83
PipedOutputStream
PrintStream
Metode pentru fluxurile de ieire
flush() - foreaz scrierea datelor ntr-un canal de redirectare
close() - nchide un flux de ieire
Write
int write ();
int write (byte[] buffer)
int write (byte[] buffer, int offset, int length)
Flush - foreaz scrierea ctre dispozitivul de ieire a datelor stocate n zona tampon pentru un flux
de ieire.
void flush();
Close - nchide un flux de ieire (Java nchide automat fluxurile la terminarea aplicaiei)
void close();
RECOMANDARE: Operatiile read/write se recomand a fi fcute n fire de execuie 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 !");
84
System.exit(1);
}
}//main
}//class
85