- Given the UTF contents, read & write utf contents using InputStreamReader & OutputStreamWriter.
- We have already discussed similar posts:
- Read & write UTF file – BufferReader & BufferWriter (using NIO)
- Read & write contents (without UTF) using InputStreamReader/OutputStreamWriter
In this post, we will demonstrate read and write operation with UTF-8 contents.
Read write utf file – InputStreamReader & OutputStreamWriter
package org.learn.utf.io; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class SteamReaderWriter { public static void main(String[] args) throws IOException { writeUTFUsingStreamWriter(); readUTFUsingStreamReader(); } private static void writeUTFUsingStreamWriter() throws IOException { System.out.println("1. Start writting contents to file - OutputStreamWriter"); String newLine = System.getProperty("line.separator"); try (FileOutputStream fileStream = new FileOutputStream(new File("sampleUTFFile.txt")); OutputStreamWriter writer = new OutputStreamWriter(fileStream, "UTF-8")) { writer.write("Names of Jackie Chan:"); writer.write(newLine); writer.write("房仕龍 (Fong Si-lung)"); writer.write(newLine); writer.write("元樓 (Yuen Lou)"); writer.write(newLine); writer.write("大哥 (Big Brother)"); writer.write(newLine); } System.out.println("2. Successfully written contents to file - OutputStreamWriter"); } private static void readUTFUsingStreamReader() throws IOException { try (FileInputStream fileStream = new FileInputStream(new File("sampleUTFFile.txt")); InputStreamReader reader = new InputStreamReader(fileStream, "UTF-8")) { System.out.println("\n3. Start Reading file using InputStreamReader:"); int character; while ((character = reader.read()) != -1) { System.out.print((char) character); } System.out.println("4. End Reading file using InputStreamReader"); } } }
The content of sampleUTFFile.txt is as follows:
O/P: Read write file – InputStreamReader & OutputStreamWriter
1. Start writting contents to file - OutputStreamWriter 2. Successfully written contents to file - OutputStreamWriter 3. Start Reading file using InputStreamReader: Names of Jackie Chan: 房仕龍 (Fong Si-lung) 元樓 (Yuen Lou) 大哥 (Big Brother) 4. End Reading file using InputStreamReader