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: టుటోరియల్స్ పాయింట్ కి స్వాగతిం