seminarski rad-outputstream.doc

14
Veleučilište u Rijeci Stručni studije poslovne informatike Seminarski rad Klasa OutputStream

Upload: vedran-sevrovic

Post on 10-Jul-2016

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Seminarski rad-OutputStream.doc

Veleučilište u RijeciStručni studije poslovne informatike

Seminarski rad

Klasa OutputStream

Student: Tihomir BrdarMentor: Ivan PogarčićPredmet: Objektno orijentirane tehnologije I

Rijeka, veljača 2008.

Page 2: Seminarski rad-OutputStream.doc

Sadržaj

Sadržaj.....................................................................................................................................2Uvod..........................................................................................................................................3

java.io Class BufferedWriter..................................................................................................3Članovi klase BufferedWriter..........................................................................................4

Polja ( Fields ).........................................................................................................................4Konstruktori ( Constructors )..................................................................................................5

BufferedWriter....................................................................................................................5BufferedWriter....................................................................................................................5

Metode ( Methods ).................................................................................................................5write....................................................................................................................................5write....................................................................................................................................6writer...................................................................................................................................6newLine...............................................................................................................................7flush.....................................................................................................................................7close....................................................................................................................................7

Klasa Writer..........................................................................................................................8java.io Class Writer.................................................................................................................8Polja( Fields )..........................................................................................................................9

lock......................................................................................................................................9Konstruktori ( Constructors )..................................................................................................9

Writer..................................................................................................................................9Writer..................................................................................................................................9

Metode ( Methods ).................................................................................................................9write....................................................................................................................................9write..................................................................................................................................10write..................................................................................................................................10write..................................................................................................................................10write..................................................................................................................................11flush...................................................................................................................................11close..................................................................................................................................11

Primjeri korištenja klase BufferedWriter................................................................12BufferedWriter: close().........................................................................................................12Primjer zapisivanja teksta u file............................................................................................12

Page 3: Seminarski rad-OutputStream.doc

Uvod

java.io Class OutputStream

java.lang.Object java.io.OutputStream

Klasa OutputStream je apstraktna klasa i ona je super klasa svih klasa koje prezentiraju izlazni tok podataka.

Izlazni tok prihvaća izlazne bajtove i šalje ih u neki kanal.

Aplikacije to trebaju kako bi definirale podklasu od klase OutputStream koja mora dobaviti barem jednu metodu koja će zapisati bajt u output.

Page 4: Seminarski rad-OutputStream.doc

Članovi klase OutputStream

Konstruktori ( Constructors )

OutputStream

public OutputStream ( )

Metode ( Methods )

write

public abstract void write (int b)throws IOException

Piše specificirani bajt u njegov izlazni tok. Glavni dogovor za write je da je jedan bajt upisan u izlazni tok. Bajt koji se treba upisati je osmi nisko poredan bit argumenta b. Visoko poredan 24 bit od argumenta b je ignoriran.

Podklase od OutputStream mora omogućiti implementaciju ove metode.

Parametri: b - bajt

Izuzeci: IOException – Ako se dogodi I/O greška. Posebice IOException može biti izbačena ako je izlazni tok zatvoren.

Page 5: Seminarski rad-OutputStream.doc

write

public void write(byte[] b) throws IOException

Ova metoda zapisuje b dužinu bajtova iz specificiranog ajt polja u ovaj izlazni tok.

Glavni dogovor za write(b) je da bi trebao imati točno jednaki efekt kao poziv write(b, o, b.length).

Parametri: b– podatak

Izuzeci:IOException – Ako se dogodi I/O greška

writer

public void write(byte[] b, int off, int len) throws IOException

Zapisuje dužinu bajtova iz specificiranog bajt polja startajući kod granaja off ovog izlaznog toka. Glavni dogovor za write (b, off, len) je da su neki bajtovi u polju b zapisani u izlazni tok u poretku; element b[off] je prvi bajt koji je zapisan a b[off+len-¸1] je zadnji bajt koji je zapisan ovom operacijom.

Ako je b jednak nuli, NullPointerException je poslana.

Ako je off negativan, ili je len negativan, ili ako je off+len veći od dužine polja b, tada je poslana iznimka IndexOutOfBoundsException.

Parametri: b- podatakoff- startni ogranak u podatkulen – broj bajtova za zapis

Izuzeci:

Page 6: Seminarski rad-OutputStream.doc

IOException – Ako se dogodi I/O greška. Posebice IOException može biti izbačena ako je izlazni tok zatvoren.

flush

public void flush() throws IOException

Poplavljuje ovaj izlazni tok i tjera svaki baferiran izlazni bajt da bude zapisan. Glavni dogovor kod flush je da se pozove ako su indikacije za to, ako je bilo koji bajt prethodno zapisan buferiran od impementacije izlaznog toka, takvi bajtovi moraju odmah biti zapisani na njihovo zamišljeno mjesto.

Flush metoda OutputStream – a ne radi ništa.

Izuzeci:IOException – Ako se dogodi I/O greška

close

public void close() throws IOException

Zatvara ovaj izlazni tok i pušta sve sistemske resurse povezane sa ovim tokom. Glavni dogovor kod close je ta zatvori izlazni tok. Zatvoreni tok ne može činiti izlazne operacije i ne može biti ponovno otvoren.

Close metoda OutputStream – a ne radi ništa.

Izuzeci:IOException – Ako se dogodi I/O greška

Page 7: Seminarski rad-OutputStream.doc

Klasa OutputStreamWriter

java.io Class OutputStreamWriterjava.lang.Object java.io.Writer java.io.OutputStreamWriter

Direktna podklasa - FileWriter

public class OutputStreamWriter extends Writer

OutputStreamWriter je most između znakovnog toka i bajtovnog toka. Znakovi zapisani u njega su kodirani u bajtove koristeći specijalni charset. Taj skup znakova koji on koristi može biti specificiran imenim ili može biti dat eksplicitno, ili može biti prihvaćen znakovni skup platforme.

Svaka invookacija write() metode uzrokuje da konverter za kodiranje bude pozvan na zadanim znakovima. Rezultirani bajtovi su nakupljeni u buferu prije nego što su zapisani u donji izlazni tok. Veličina ovog bufera može biti specificirana ali i default veličina je dovoljno velika za većinu namjena. Znakovi prebačeni write() metodom nisu buferirani.

Za vrhunsku efikasnost, uzimajući u obzir omotavanje OutputStreamWriter – a između BufferedWriter – a kako bi se izbjegle učestale invokacije konvertera. Na primjer:

Writer out = new BufferedWriter(new OutputStreamWriter(System.out));

Page 8: Seminarski rad-OutputStream.doc

Polja( Fields )

lock

lock

.

Konstruktori ( Constructors )

OutputStreamWriter

Public OutputStreamWriter(OutputStream out, String charsetName)Throws UnsupportedEncodingException

Kreira OutputStreamWriter koji koristi navedeni skup znakova.

Parametri:out – izlazni tokcharsetName – naziv skupa znakova

Izuzeci:UnsupportedEncodingException – Ako navedeno kodiranje nije podržano

OutputStreamWriter

public OutputStreamWriter(OutputStream out)

Kreira OutputStreamWriter koji koristi zadano znakovno kodiranje

Parametri:out – izlazni tok

OutputStreamWriter

public OutputStreamWriter(OutputStream out, Charset cs)

Kreira OutputStreamWriter koji koristi zadani skup znakova.

Page 9: Seminarski rad-OutputStream.doc

Parametri:out – izlazni tokcs – skup znakova

OutputStreamWriter

public OutputStreamWriter(OutputStream out, CharsetEncoder enc)

Kreira OutputStreamWriter koji koristi zadani skup znakova za kodiranje

Parametri:out – izlazni tokenc – skup znakova za kodiranje

Metode ( Methods )

getEncoding

public String getEncoding()

Vraća ime znaka za kodiranje koji je korišten od strane toka.

Ako kodiranje ima povijesno ime, ime je vraćeno, inače je kodirano kanoničko ime vraćeno.

Ako je kreirana instanca sa OutputStreamWriter(OutputStream, String) , konstruktor tada vraćeno ime, koje je jedinstveno za kodiranje može razlikovati od imena poslanom konstruktoru. Ova metoda može vratiti vrijednost nule ako je tok zatvoren.

write

public void write(int c) throws IOException

Page 10: Seminarski rad-OutputStream.doc

Zapisuje jedan znak.

Parametri:c – int specificira znak koji će biti zapisan

Izuzeci:IOException – Ako se dogodi I/O greška

write

public void write(char[] cbuf, int off, int len) throws IOException

Zapisuje dio iz polja znakova.

Parametri: cbuf – Polje znakova

off - ogranak od kuda počinje pisanje znakovalen – broj znakova za zapisivanje

Izuzeci:IOException – Ako se dogodi I/O greška

write

public void write(String str, int off, int len) throws IOException

Zapisuje dio stringova.

Parametri: str – stringoff - ogranak od kuda počinje pisanje znakovalen – broj znakova za zapisivanje

Izuzeci:IOException – Ako se dogodi I/O greška

flush

public void flush() throws IOException

Poplavljuje tok.

Page 11: Seminarski rad-OutputStream.doc

Izuzeci:IOException – Ako se dogodi I/O greška

close

public void close() throws IOException

Zatvara tok.

Izuzeci:IOException – Ako se dogodi I/O greška

Primjeri korištenja klase BufferedWriter

* * Java Network Programming, Second Edition * Merlin Hughes, Michael Shoffner, Derek Hamner * Manning Publications Company; ISBN 188477749X * * http://nitric.com/jnp/ * * Copyright (c) 1997-1999 Merlin Hughes, Michael Shoffner, Derek Hamner; * all rights reserved; see license.txt for details. */

import java.io.*;

public class SimpleOut { public static void main (String[] args) throws IOException { for (int i = 0; i < args.length; ++ i) { println (args[i]); } }

public static void println (String msg) throws IOException { synchronized (System.out) { for (int i = 0; i < msg.length (); ++ i) System.out.write (msg.charAt (i) & 0xff); System.out.write ('\n'); } System.out.flush (); }}

/* all of the write() methods of class OutputStream are declared as throwing IOException */

Page 12: Seminarski rad-OutputStream.doc