A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© che201311 中级黑马   /  2013-11-23 11:17  /  997 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


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?

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
我运行了一下,Dat文件中是AB中啊?那个空格就是那个整数
回复 使用道具 举报
那个空格就是你输入的i,至于你说的为什么不是0144,这个更好解释了,一个汉字是2个字节,字符是1个,合起来就是0155,不是0144
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马