Java Internalization - Chuyển đổi Unicode từ / sang Reader / Writer

Các lớp Reader và Writer là các lớp luồng định hướng ký tự. Chúng có thể được sử dụng để đọc và chuyển đổi các ký tự Unicode.

Chuyển đổi

Ví dụ sau sẽ giới thiệu việc chuyển đổi Chuỗi Unicode thành byte UTF8 [] và byte UTF8 [] sang byte Unicode [] bằng cách sử dụng các lớp Reader và Writer.

IOTester.java

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.nio.charset.Charset;
import java.text.ParseException;

public class I18NTester {
   public static void main(String[] args) throws ParseException, IOException {

      String input = "This is a sample text" ;

      InputStream inputStream = new ByteArrayInputStream(input.getBytes());

      //get the UTF-8 data
      Reader reader = new InputStreamReader(inputStream, Charset.forName("UTF-8"));

      //convert UTF-8 to Unicode
      int data = reader.read();
      while(data != -1){
         char theChar = (char) data;
         System.out.print(theChar);
         data = reader.read();
      }
      reader.close();

      System.out.println();

      //Convert Unicode to UTF-8 Bytes
      ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
      Writer writer = new OutputStreamWriter(outputStream, Charset.forName("UTF-8"));

      writer.write(input);
      writer.close();

      String out = new String(outputStream.toByteArray());
   
      System.out.println(out);
   }  
}

Đầu ra

Nó sẽ in ra kết quả sau.

This is a sample text
This is a sample text
In