JDK API 1.6 中文帮助文档中和LZ意思一样,这么写的:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
public void write(int c)
throws IOException写入单个字符。要写入的字符包含在给定整数值的 16 个低位中,16 高位被忽略。
用于支持高效单字符输出的子类应重写此方法。
参数:
c - 指定要写入字符的 int。
抛出:
IOException - 如果发生 I/O 错误
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
例子:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
import java.io.*;
public class Test {
public static void main(String[] args) throws IOException {
FileWriter wr=new FileWriter("test");
int i=0x1234007F;
wr.write(i);
wr.close();
FileReader rd=new FileReader("test");
char[] chBuff=new char[2];
rd.read(chBuff);
rd.close();
System.out.print(Integer.toHexString(chBuff[1])+" ");
System.out.println(Integer.toHexString(chBuff[0]));
}
}
//输出的是 0 7f,高16位的0x1234被屏蔽了
=============================
=============================
这个例子比上面那个好点
import java.io.*;
public class Test {
public static void main(String[] args) throws IOException {
FileWriter wr=new FileWriter("test.txt");
char i1='我';
char i2='你';
int i=(i1<<16)+i2;
wr.write(i);
wr.close();
FileReader rd=new FileReader("test.txt");
char[] chBuff=new char[2];
rd.read(chBuff);
rd.close();
System.out.print(Integer.toHexString(chBuff[1])+" ");
System.out.println(Integer.toHexString(chBuff[0]));
}
}