为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

正在回答

3 回答

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

1 回复 有任何疑惑可以回复我~
#1

慕粉4241372 提问者

非常感谢!
2017-03-05 回复 有任何疑惑可以回复我~
#2

向上看 回复 慕粉4241372 提问者

没事,相互学习!
2017-03-06 回复 有任何疑惑可以回复我~
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');
}


0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

慕粉4241372 提问者

前面有判断的呀,如果不会存在才创建这个文件,这样不会重复创建吧?
2017-03-03 回复 有任何疑惑可以回复我~
#2

慕粉4241372 提问者

全部代码我贴在下面回答里了,有个判断条件,不存在才会新建的
2017-03-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信