问答详情
源自:3-1 RandomAccessFile基本操作

重复执行write()却不会重复写入?

raf.write('A');
raf.write('b');

重复run这个文件,为什么raf文件中始终只有一个Ab?难道不是每次执行一次都会添加一次Ab吗

提问者:慕粉4241372 2017-03-03 11:35

个回答

  • 向上看
    2017-03-04 21:12:45
    已采纳

    因为你每run一次,指针都是从0开始的,每run一次都改写了上一次内容,你可以尝试运行一下老师的程序,然后再在程序前添加 raf.seek(12),使下一次从12byte处开始写,运行后你会发现输出长度为24

  • 慕粉4241372
    2017-03-03 14:10:25

    public static void main(String[] args)throws IOException {
        File demo=new File("d://demo");
        if(!demo.exists())
            demo.mkdir();
    	File file=new File(demo,"raf.text");
    	if(!file.exists())
    	    file.createNewFile();
    	RandomAccessFile raf=new RandomAccessFile(file, "rw");
    	raf.write('A');
    	raf.write('b');
    }


  • 不会走路的老鼠
    2017-03-03 13:18:13

    之前的代码是建立这个文件,然后Run相当于重新建立一次这个文件