Java中的readUTF()和writeUTF()方法

Unicode(UTF)-代表Unicode转换格式。它是由Unicode联盟开发的。如果要创建使用来自多个字符集的字符的文档,则可以使用单个Unicode字符编码来创建。它提供3种类型的编码。

  • UTF-8-它以8位为单位(字节),UTF8中的字符长度可以从1到4个字节,从而使UTF8的宽度可变。

  • UTF-16-8-它以16位为单位(短裤),长度可以是1或2个短裤,从而使UTF16的宽度可变。

  • UTF-32-它以32位单元(长)为单位。它是固定宽度格式,长度始终为1“长”。

writeUTF()的java.io.DataOutputStream中类的方法接受字符串值作为参数,并使用改性UTF-8编码并将其写入到当前的输出流。因此要将UTF-8数据写入文件-

readUTF()的java.io.DataOutputStream中的方法读取该为修饰UTF-8编码成一个字符串并返回它的数据。因此要读取UTF-8数据到文件-

示例

以下Java示例将UTF-8数据写入文件,然后使用writeUTF()readUTF()方法将其读回。

import java.io.DataInputStream;
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
public class Read_Write_UTF {
   public static void main(String args[]) {
      FileOutputStream fileOut = null;
      DataOutputStream outputStream = null;
      FileInputStream fileIn = null;
      DataInputStream inputStream = null;
      StringBuffer buffer = new StringBuffer();
      try {
         //实例化FileOutputStream类
         fileOut = new FileOutputStream("D:\\utfText.txt");
         //实例化DataOutputStream类
         outputStream = new DataOutputStream(fileOut);
         //将UTF数据写入输出流
         outputStream.writeUTF("టుటోరియల్స్ పాయింట్ కి స్వాగతిం");
         outputStream.flush();
         System.out.println("Data inserted into the file");
         //实例化FileInputStream类
         fileIn = new FileInputStream("D:\\utfText.txt");
         //实例化DataInputStream类
         inputStream = new DataInputStream(fileIn);
         //从DataInputStream读取UTF数据
         while(inputStream.available()>0) {
            buffer.append(inputStream.readUTF());
         }
      }
      catch(EOFException ex) {
         System.out.println(ex.toString());
      }
      catch(IOException ex) {
         System.out.println(ex.toString());
      }
      System.out.println("Contents of the file: "+buffer.toString());
   }
}

输出结果

Data inserted into the file
Contents of the file: టుటోరియల్స్ పాయింట్ కి స్వాగతిం