Java: Input- ja Output StreamWriter

Siinä missä FileReader ja FileWriter mahdollistavat helpon tavan käsitellä tiedostoja, ne eivät kuitenkaan ymmärrä erilaisten merkistöjen päälle tuon taivaallista. Windowsissa tallennettu tiedosto iso-8859-1 merkistöllä näyttää varsin erikoiselta kun se avataan esim. linux koneessa jossa on käytössä utf-8 merkistö.

InputStreamReader ja OutputStreamWriter jotka ovat FileReader ja FileWriter luokkien yliluokkia tarjoavat mahdollisuuden avata ja kirjoittaa tiedostoja tietyllä merkistöllä.

/* InputStreamReaderWriter.java. Esimerkki InputStreamReaderin ja OutputStreamWriterin käytöstä.
 * Kristian Virtanen, 2014, kristianvirtanen.wordpress.com
 * Public Domain, eli saa käyttää, muuttaa, kopioida, levittää, kummata ja mitä tahansa.
 */
 
// tuodaan tarvittavat paketit
import java.io.*;

public class InputStreamReaderWriter {
	public static void main(String[] args) {
		String esimerkki = "UTF-8 tiedosto";
		
		// kirjoitetaan utf-8 merkistöllä
		try {
			OutputStreamWriter isr = new OutputStreamWriter(new FileOutputStream(new File(esimerkki)), "utf-8");
			isr.write(esimerkki);
		} catch (IOException e) {
			System.out.println(e.toString());
		}
		
		// avataan ja luetaan utf-8 merkistöllä
		try {
			InputStreamReader isr = new InputStreamReader(new FileInputStream(new File(esimerkki)), "utf-8");
			int i=0;
			while ((i=isr.read())!=-1){
				System.out.print((char)i);
			}
			isr.close();
		} catch (IOException e) {
			System.out.println(e.toString());
		}
	}
}

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s

WordPress.com.

Ylös ↑