Deo zbornika Učimo Javu

Prevod binarnog toka

Java ima ugrađene klase koje olakšavaju za rad sa tokom binarnih podataka.

Klasa InputStreamReader (čitač ulaznog toka)

Klasa InputStreamReader služi kao most između toka bajtova i toka znakova. Čita bajtove s ulaznog toka i prevodi ih u znakove, u skladu sa zadanim znakovnim sustavom. Znakovni sustav (encoding) može se zadati u konstruktoru ili prihvatiti podrazumevani s računala.

public InputStreamReader(InputStream in)
public InputStreamReader(InputStream in, String encoding) throws UnsupportedEncodingException

Na primjer, da biste priključili InputStreamReader na System.in sa podrazumevanim znakovnim sustavom, stavili biste:

InputStreamReader isr = new InputStreamReader(System.in);

S druge strane, ako želite čitati datoteku koja je bila napisana u fontu Macintosh Symbol, možete to učiniti ovako:

FileInputStream fis = new FileInputStream("symbol.txt");
InputStreamReader isr = new InputStreamReader(fis, "MacSymbol");

Metoda getEncoding() vraća ime znakovnog sustava koji se trenutno koristi:

public String getEncoding()

Ostale metode prekrivaju metode iz java.io.Reader, ali se, iz programerove perspektive, ponašaju na isti način kao i one.

public int read() throws IOException
public int read(char c[], int off, int length) throws IOException
public boolean ready() throws IOException
public void close() throws IOException

Klasa OutputStreamWriter (pisač izlaznog toka)

Klasa OutputStreamWriter povezuje izlazni tok bajtova i tok znakova. Ispisuje bajtove na pripadni izlazni tok, nakon prevođenja znakova u skladu sa zadanim znakovnim sustavom.

Znakovni sustav može se zadati u konstruktoru ili prihvatiti podrazumevani sustav sa platforme:

public OutputStreamWriter(OutputStream out, String enc) throws UnsupportedEncodingException
public OutputStreamWriter(OutputStream out)

Na primjer, da biste priključili OutputStreamWriter na System.out sa pretpostavljenim znakovnim sustavom, stavili biste:

OutputStreamWriter osw = new OutputStreamWriter(System.out);

S druge strane, ako želite pisati u datoteku u Macintosh Symbol fontu, možete to učiniti ovako:

FileOutputStream fos = new FileOutputStream("symbol.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos, "MacSymbol");

Metoda getEncoding() vraća string koji sadrži ime znakovnog sustava koji se trenutno koristi.

public String getEncoding()

Ostale metode prekrivaju metode iz java.io.Writer, ali se, iz programerove perspektive, ponašaju na isti način kao i one.

public void write(int c) throws IOException
public void write(char c[], int offset, int length) throws IOException
public void write(String s, int offset, int length) throws IOException
public void flush() throws IOException
public void close() throws IOException

Izvor: Elliotte Rusty Harold, Java Lecture Notes, preveo Draško Budin, priredio Damjan Pavlica.