不使用createNewFile()方法系统会自动创建文件

不使用createNewFile()方法系统会自动创建文件

问题描述:

对于字符流的写入代码,发现去掉以下代码,程序也可以正常运行并自动创建文件。

if (!file.exists()) {
    file.createNewFile();
}

注释掉这段代码并删除txt文件后运行程序,发现并没有报IO异常,程序自动创建了txt文件并写入成功,请问老师这是为什么呢,如果可以自动创建文件,为什么还要加入这段代码判断文件是否存在呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,1、File并不会创建一个文件,new File()是在内存中创建File文件映射对象。如下所示:

https://img1.sycdn.imooc.com//climg/64c71bc9096c921206650339.jpg

2、可以成功写入文件是因new FileWriter(file),当没有文件时new FileWriter(file)自动创建了文件。File不会创建一个文件,所以一般都会使用file.exists判断文件是否存在,保证文件存在。

祝学习愉快!

  • Macrohard 提问者 #1

    好的,谢谢老师。

    2023-07-31 12:14:31
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师