从读者到作家转换(From Reader and To Writer Conversion)

优质
小牛编辑
125浏览
2023-12-01

Reader和Writer类是面向字符的流类。 这些可用于读取和转换Unicode字符。

转换 (Conversion)

下面的示例将展示使用Reader和Writer类将Unicode字符串转换为UTF8 byte []和UTF8 byte []到Unicode byte []。

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);
   }  
}

输出 (Output)

它将打印以下结果。

This is a sample text
This is a sample text