Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Fluxuri standard de intrare/iesire

java


Fluxuri standard de intrare/iesire

Mergând pe linia introdusa de sistemul de operare UNIX orice program Java are :

    • o intrare standard
    • o iesire standard
    • o iesire standard pentru erori

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

Afisarea informatiilor pe ecran

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:

catch (IOException e)

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.

Citirea datelor de la tastatura

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));
System.out.print("Introduceti o linie:");
String linie = stdin.readLine()
System.out.println(linie);

Exemplu: un program care afiseaza liniile introduse de la tastatura

import java.io.*;
public class Echo catch(IOException e)
}

Observatie: Metoda readLine poate provoca exceptii de tipul IOException

Redirectarea intrarii/iesirii standard

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 intrare
setOut(PrintStream) - redirectare iesire
setErr(PrintStream) - redirectare erori

Redirectarea 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(
new FileOutputStream("rezultate.out")));
System.setOut (out);

Redirectarea erorilor într-un fisier poate fi de asemenea utila.

PrintStream err = new PrintStream(new BufferedOutputStream(
new FileOutputStream("erori.err")));
System.setErr (err);

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:
import java.io.*;
class Redirectare catch(IOException e)
}


Document Info


Accesari: 1510
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )