黑马程序员技术交流社区

标题: Java中的File类 [打印本页]

作者: che201311    时间: 2013-11-23 11:17
标题: Java中的File类

package hometest;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;

public class IOFileTest {
    public static void main(String[] args) throws IOException {
        //创建目录
        File f = new File("shirui");
        if(!f.exists()){
            f.mkdir();
        }
        //在shirui文件夹中创建raf.dat
        File f2 = new File(f, "raf.dat");
        if(!f2.exists()){
            f2.createNewFile();
        }
        //打开这个文件,进行随机读写
        RandomAccessFile raf = new RandomAccessFile(f2, "rw");
        //输出默认的“游标”位置
        System.out.println(raf.getFilePointer());//0
        raf.write('A');//写入字符'A'
        System.out.println(raf.getFilePointer());//1
        raf.write('B');
         
        int i = 0x7fffffff;//写入整数0x7fffffff
        raf.write(i);
        //写入GBK编码中的字符'中',GBK编码为d6d0
        String s = "中";
        //得到“中”的gbk编码形式
        byte[] gbk = s.getBytes("gbk");//gbk={d6, d0}
        raf.write(gbk);
        System.out.println(raf.length());
        System.out.println(raf.getFilePointer());
        raf.close();
    }
}

上面的代码我输入了4个字符,运行后的结果是,我认为应该是0,1,4,4才对啊。第二个问题是我打开raf.dat文件,里面写的是AB 中,为什么没有输入的整数i?
作者: hurryup    时间: 2013-11-23 12:01
我运行了一下,Dat文件中是AB中啊?那个空格就是那个整数
作者: 王贺    时间: 2013-11-23 15:58
那个空格就是你输入的i,至于你说的为什么不是0144,这个更好解释了,一个汉字是2个字节,字符是1个,合起来就是0155,不是0144




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2