char是16位的,1只用了8位,前8位为空,所以会这样。用字符字节转换流可解决

解决方案 »

  1.   

    javad的字符是Unicode,一个占了两个字节。但它和ASCII兼容,如果是ASCII字符,高位是空的。
    有时候程序会根据你系统的字符集作自动转换。如:
    import java.awt.*;
    import java.io.*;public class Hello{
        public static void main(String args[]){
            String a = "1234";        
            try{
                FileWriter fw = new FileWriter("c:\\a.txt");
                fw.write(a);
                fw.close();
            }catch(IOException e){
            }
        }        
    }
    在我的机器上就会得到4个字节的文件有的类如 InputStreamReader,你可以通过构造函数指定字符集。如GB2312,ISO8859_1