为什么么java的File类无法创建文件?
如下代码,先通过newFile(“text.txt”)创建一个文件然后再通过PrintWriter写入内容比较奇怪的是,为什么单独运行Filefile=newFile(“...
如下代码, 先通过new File(“text.txt”)创建一个文件
然后再通过PrintWriter写入内容
比较奇怪的是,为什么单独运行File file=new File(“text.txt”),我在相应的文件夹下并没找到创建的text.txt
求解释? tks 展开
然后再通过PrintWriter写入内容
比较奇怪的是,为什么单独运行File file=new File(“text.txt”),我在相应的文件夹下并没找到创建的text.txt
求解释? tks 展开
3个回答
展开全部
首先 File 类是对文件系统的映射 并不是硬盘上真实的文件
所以 new File("xxx.xxx") 只是在内存中创建File文件映射对象,而并不会在硬盘中创建文件
如果需要创建文件需要以下操作:
判断映射的文件是否真实存在 file.exists() //true存在 false不存在
如果存在即可直接操作, 否则需要调用 file.createNewFile() 创建真实文件
但是以上方式只会适用创建文件本身,不包括父文件的创建(如果父文件不存在)
所以一般需要对父文件存在与否作判断
File parent = file.getParentFile() // 获取父文件
if( !parent.exists() ) parent.mkdirs(); //创建所有父文件夹
所以 new File("xxx.xxx") 只是在内存中创建File文件映射对象,而并不会在硬盘中创建文件
如果需要创建文件需要以下操作:
判断映射的文件是否真实存在 file.exists() //true存在 false不存在
如果存在即可直接操作, 否则需要调用 file.createNewFile() 创建真实文件
但是以上方式只会适用创建文件本身,不包括父文件的创建(如果父文件不存在)
所以一般需要对父文件存在与否作判断
File parent = file.getParentFile() // 获取父文件
if( !parent.exists() ) parent.mkdirs(); //创建所有父文件夹
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询