- Given the UTF contents, read & write utf contents using BufferReader & BufferWriter.
- Use java nio feature to create BufferReader & BufferWriter.
- We have already discussed similar posts:
- Read & write contents bufferReader/bufferWriter without UTF using NIO
- Read & write utf contents bufferReader/bufferWriter without NIO
- Read & write utf contents InputStreamReader/OutputStreamWriter without NIO
In this post, we will demonstrate read and write operations with UTF-8 contents.
Let us look into the complete example code, where we are writing the contents to file and reading the contents from file (using NIO).
Program – Read & write UTF file (BufferReader & BufferWriter)
package org.learn.utf.io;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class BufferReaderWriterNIO {
public static void main(String[] args) throws IOException {
writeUTFUsingNIO();
readUTFUsingNIO();
}
private static void writeUTFUsingNIO() throws IOException {
Path path = Paths.get("sampleUTFFile.txt");
System.out.println("1. Start writting contents to file - BufferedWriter(NIO)");
try (BufferedWriter writer = Files.newBufferedWriter(path, StandardCharsets.UTF_8)) {
writer.write("Names of Jackie Chan:");
writer.newLine();
writer.write("房仕龍 (Fong Si-lung)");
writer.newLine();
writer.write("元樓 (Yuen Lou)");
writer.newLine();
writer.write("大哥 (Big Brother)");
}
System.out.println("2. Successfully written contents to file - BufferedWriter(NIO)");
}
private static void readUTFUsingNIO() throws IOException {
Path path = Paths.get("sampleUTFFile.txt");
try (BufferedReader bufferedReader = Files.newBufferedReader(path, StandardCharsets.UTF_8)) {
String line;
System.out.println("\n3. Start Reading file - BufferedReader (NIO):");
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
System.out.println("4. End reading file - BufferedReader (NIO)");
}
}
}
The content of sampleUTFFile.txt is as follows:
Output – Read & write UTF file (BufferReader & BufferWriter)
1. Start writting contents to file - BufferedWriter(NIO) 2. Successfully written contents to file - BufferedWriter(NIO) 3. Start Reading file - BufferedReader(NIO): Names of Jackie Chan: 房仕龍 (Fong Si-lung) 元樓 (Yuen Lou) 大哥 (Big Brother) 4. End reading file - BufferedReader(NIO)