Mergând pe linia introdusa de sistemul de operare UNIX orice program Java are :
In general
intrarea standard este tastatura iar iesirea standard este ecranul.
Intrarea si iesirea standard su 545d36f nt de fapt niste obiecte pre-create ce descriu
fluxuri de date pentru citirea respectiv scrierea la dispozitivele standard ale
sistemului. Aceste obiecte sunt definite publice în clasa System si
sunt:
Variabila |
Semnificatie |
Tip flux |
System.in |
flux standard de intrare |
InputStream |
System.out |
flux standard de iesire |
PrintStream |
System.err |
flux standard pentru afisarea erorilor |
PrintStream |
Am vazut deja
numeroase exemple de folosire a fluxului standard de iesire, el fiind folosit
la afisarea oricaror rezultate pe ecran (în modul consola):System.out.println("mesaj")
.
Fluxul standard pentru afisarea erorilor se foloseste similar:
Fluxurile de iesire pot fi folosite asadar fara probleme deoarece tipul lor este PrintStream, clasa primitiva pentru scrierea efectiva a datelor. In schimb fluxul standard de intrare System.out este de tip InputStream care este o clasa abstracta, deci pentru a-l putea utiliza va trebui sa-l folosim împreuna cu un flux de procesare a datelor sau cu orice alt flux ce permite citirea efectiva a datelor.
Uzual vom dori sa folosim metoda readLine pentru citirea datelor de la tastatura si din acest motiv vom folosi intrarea standard împreuna cu o clasa de procesare care implementeaza metoda readLine. Exemplul tipic este:
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));Exemplu: un program care afiseaza liniile introduse de la tastatura
import java.io.*;Observatie: Metoda readLine poate provoca exceptii de tipul IOException
Incepând cu Java 1.1 au fost introduse în clasa System metode statice pentru a redirecta fluxurile de intrare si iesire standard. Aceste metode sunt:
setIn(InputStream) - redirectare intrareRedirectarea iesirii este utila în special atunci când sunt afisate foarte multe date pe ecran si acestea se deruleaza mai repede decât putem citi. Putem redirecta afisarea catre un fisier pe care sa-l citim dupa executia programului. Secventa clasica de redirectare a iesirii este:
PrintStream out = new PrintStream(new BufferedOutputStream(Redirectarea erorilor într-un fisier poate fi de asemenea utila.
PrintStream err = new PrintStream(new BufferedOutputStream(Redirectarea intrarii poate fi utila pentru un program consola care primeste niste valori de intrare. Pentru a nu le scrie de la tastatura de fiecare data în timpul testarii programului ele pot fi puse într-un fisier, redirectând intrarea standard. In momentul când testarea programului a luat sfârsit redirectarea poate fi eliminata, datele fiind cerute din nou de la tastatura.
Exemplu de folosire a redirectarii:
|