Metode:
public int read() throws IOException - citește din
fluxul de intrare un singur caracter; întoarce caracterul citit (în
domeniul 0 .. 16383) sau -1 dacă s-a ajuns la sfârșit de fișier; metoda
produce blocarea procesului în care este invocată, până când apare un
caracter în fluxul de intrare;
public int read(char[] cbuf) throws IOException - citește
din flux o secvență de caractere și le depune într-o zonă tampon
(buffer) constituită din tabloul de caractere cbuf; întoarce numărul de
caractere citite sau -1 dacă s-a atins sfârșitul de fișier; metoda
produce blocarea procesului până când apar caractere în fluxul de
intrare, sau se ajunge la sfârșit de fișier;
public abstract int read(char[] cbuf, int off, int len) throws
IOException - acționează asemănător cu metoda precedentă, dar
depunerea caracterelor citite în zona tampon de destinație se face
începând de la poziția off (offset), iar numărul maxim de
caractere citite este len;
public long skip(long n) throws IOException - se sare
peste n caractere din fluxul de intrare, care nu vor fi citite;
procesul apelant este blocat pană când apare cel puțin un caracter în
fluxul de intrare; dacă se întâlnește sfârșitul de fișier, se generează
o excepție de intrare/ieșire; întoarce numărul de caractere sărite
efectiv;
public boolean ready() - întoarce true dacă fluxul
de intrare este gata pentru a putea fi citit;
public void mark(int readAheadLimit) throws IOException - marchează
poziția curentă în fluxul de intrare, pentru a se putea reveni la ea
ulterior; argumentul readAheadLimit indică numărul de caractere
care vor putea fi ulterior citite din flux,fără ca acest marcaj să se
piardă; excepția de intrare/ieșire apare dacă fluxul nu suportă marcarea
sau dacă se produce altă eroare de intrare/ieșire;
public boolean markSupported() - indică dacă fluxul
suportă marcarea;
public void reset() throws IOException - dacă fluxul a
fost marcat, este readus la poziția corespunzătoare ultimului marcaj;
dacă fluxul nu a fost marcat sau nu suportă resetarea, se generează o
excepție de intrare/ieșire;
public abstract void close() throws IOException - închide
fluxul; din acest moment, invocarea metodelor read(), ready(), mark()
sau reset pentru acest flux va genera o excepție de intrare/ieșire.
Metode:
public void write(int c) throws IOException - scrie în
fluxul de ieșire caracterul c;
public void write(char[] cbuf) throws IOException - scrie
în fluxul de ieșire caracterele conținute în tabloul cbuf;
public abstract void(char[] cbuf, int off, int len) throws
IOException - scrie în fluxul de ieșire len caractere din
tabloul cbuf, începând de la poziția off (offset);
public void write(String str) throws IOException - scrie
în flux caracterele existente în șirul str;
public void write(String str, int off, int len) throws
IOException - scrie în flux len caractere din șirul str,
începând de la poziția off (offset);
public abstract void flush() throws IOException - "descarcă"
fluxul de ieșire; dacă fluxul a salvat într-o zonă tampon anumite
caractere scrise cu metodele write(), aceste caractere sunt scrise
efectiv în fluxul de destinație; dacă această destinație este tot un
flux, invocă și metoda flush() a acestuia, astfel că se "descarcă"
întregul lanț de fluxuri;
public abstract void close() throws IOException - se
închide fluxul de ieșire; invocarea ulterioară a metodelor write() sau
flush() pentru acest flux va produce o excepție de intrare/ieșire.
Metode:
public int read() throws IOException - citește din
fluxul de intrare un singur octet; întoarce octetul citit (in domeniul 0
.. 255) sau -1 dacă s-a ajuns la sfârșit de fișier; metoda produce
blocarea procesului în care este invocată, până când apare un octet în
fluxul de intrare;
public int read(byte[] buf) throws IOException - citește
din flux o secvență de octeți și îi depune într-o zonă tampon (buffer)
constituită din tabloul de octeți buf; întoarce numărul de
octeți citiți sau -1 dacă s-a atins sfârșitul de fișier; metoda produce
blocarea procesului până când apar octeți în fluxul de intrare, sau se
ajunge la sfârșit de fișier;
public abstract int read(byte[] buf, int off, int len) throws
IOException - acționează asemănător cu metoda precedentă, dar
depunerea octeților citiți în tabloul de destinație byte[] se
face începând de la poziția off (offset), iar numărul maxim de
octeți citiți este len;
public long skip(long n) throws IOException - se sare
peste n octeți din fluxul de intrare, care nu vor fi citiți;
procesul apelant este blocat până când apare cel puțin un octet în
fluxul de intrare; dacă se întâlnește sfârșitul de fișier se generează o
eroare de intrare/ieșire; întoarce numărul de octeți săriți efectiv;
public int available() throws IOException - întoarce
numărul de octeți disponibili pentru citire în fluxul de intrare;
public void mark(int readAheadLimit) throws IOException - marchează
poziția curenta în fluxul de intrare, pentru a se putea reveni la ea
ulterior; argumentul readAheadLimit indică numărul de octeți care
vor putea fi ulterior citiți din flux, fără ca acest marcaj să se
piardă; excepția de intrare/ieșire apare dacă fluxul nu suportă marcarea
sau dacă se produce altă eroare de intrare/ieșire;
public boolean markSupported() - indică dacă fluxul
suportă marcarea;
public void reset() throws IOException - dacă fluxul a
fost marcat, este readus la poziția corespunzătoare ultimului marcaj;
dacă fluxul nu a fost marcat sau nu suporta resetarea, se generează o
excepție de intrare/ieșire;
public abstract void close() throws IOException - închide
fluxul; din acest moment, invocarea metodelor read(), ready(), mark()
sau reset() pentru acest flux va genera o excepție de intrare/ieșire.
Metode:
public void write(int c) throws IOException - scrie în
fluxul de ieșire ultimul octet al numărului c;
public void write(byte[] buf) throws IOException - scrie
în fluxul de ieșire octeții conținuti în tabloul buf;
public abstract void(byte[] buf, int off, int len) throws
IOException - scrie în fluxul de ieșire len octeți din
tabloul buf, începând de la poziția off (offset);
public abstract void flush() throws IOException - "descarcă"
fluxul de ieșire; dacă fluxul a salvat într-o zonă tampon anumiți
octeți scriși cu metodele write(), acești octeți sunt scriși efectiv în
fluxul de destinație; dacă această destinație este tot un flux, invocă
și metoda flush() a acestuia, astfel că se "descarcă" întregul lanț de
fluxuri;
public abstract void close() throws IOException - se
închide fluxul de ieșire; invocarea ulterioară a metodelor write() sau
flush() pentru acest flux va produce o excepție de intrare/ieșire.
Metodele claselor Writer și OutputStream sunt, de asemenea, similare ca signatură și funcționalitate. Metodele write(), flush() și close() există în ambele clase, însă în clasa Writer metoda write() scrie în fluxul de ieșire un caracter, iar în clasa OutputStream scrie un octet. În cazul că în metodele write() se scrie în flux conținutul unui tablou, în clasa Writer acesta este un tablou de caractere, iar in clasa OutputStream este un tablou de octeți.
Remarcăm că ierarhiile de clase Reader și Writer, introduse începând
cu JDK 1.1, nu înlocuiesc pe cele anterioare, având ca rădăcini clasele
InputStream și OutputStream, ci le completează. Se vor putea deci
folosi, după necesități, atât clasele de fluxuri de caractere, cât și
cele de fluxuri de octeți.