6.综合练习1-创建文件
题目:
分析:
本例中使用mkdirs方法创建aaa文件夹。
题目要求是"在当前模块下的aaa文件夹",此时在左侧的目录中,是没有aaa文件夹的,所以要先创建a.txt文件的父级路径aaa文件夹,由于是在当前模块下操作,所以用相对路径(不带磁盘的路径)即可->注:这里不需要调用exists方法判断aaa文件夹是否存在,因为如果要创建的aaa文件夹已经存在,那么会创建失败,方法mkdirs返回false,如果aaa文件夹不存在,才会成功创建,方法mkdirs返回true
步骤一:创建a.txt文件的父级路径即文件夹aaa
创建a.txt文件的父级路径aaa,这里不能用MyFile\aaa,因为当前模块下就是在MyFile文件夹下,此时已经在MyFile文件夹里了,所以直接传入要创建的aaa文件夹即可,不能传入MyFile\aaa
//1.创建a.txt文件的父级路径
File file=new File("aaa"); //由于是在当前模块下操作,所以用相对路径(不带磁盘的路径)即可
步骤二:创建父级路径即创建aaa文件夹->这里无需判断aaa文件夹是否存在,因为如果aaa文件夹存在的话是无法创建的,之后直接用已有的aaa文件夹即可,只有aaa文件夹不存在才会创建成功
//2.创建父级路径
file.mkdirs();
步骤三:拼接父级路径和子级路径->父级路径:file即aaa文件夹;子级路径:a.txt,代表a.txt文件在aaa文件夹下
//3.拼接父级路径和子级路径->父级路径:file;子级路径:a.txt
File src=new File(file,"a.txt");
步骤四:创建最终的a.txt文件(注:创建的是文件,要用createNewFile方法)
//4.创建最终的a.txt文件
boolean b = src.createNewFile();
步骤五:判断
//5.判断
if(b){
System.out.println("创建成功"); //如果a.txt文件不存在就会创建成功
}else {
System.out.println("创建失败"); //如果a.txt文件存在就会创建失败
}
细节1:
当前模块下未创建aaa文件夹之前,左边的目录中是没有aaa文件夹的:
代码:
运行上述代码后,运行结果如下:
上述图片中,此时左边的目录中就会有aaa文件夹,该文件夹中会有一个a.txt文件。
如果此时再次运行代码,运行结果如下:
如上图所示,就会创建失败,因为文件夹aaa里的a.txt已经存在。
细节2:针对于步骤一,如果传入的参数是MyFile\aaa(使用mkdirs方法创建文件夹aaa,mkdirs方法可以创建单级文件夹,也可以创建多级文件夹)
未运行代码前,如下图所示:
运行上述代码后,运行结果如下:
如下图所示,此时就会在MyFile文件夹下再次创建一个MyFile文件夹,然后才会创建aaa文件夹以及aaa文件夹里的a.txt文件,不符合题意,所以只传参数aaa即可:
细节3:如果采用mkdir方法创建aaa文件夹(mkdir方法只能创建单级文件夹)
如下图所示,未运行代码前:
如下图所示,运行上述代码实际会报错,因为此时已经在MyFile模块文件夹下,MyFile模块文件夹的目录中还没有MyFile文件夹,此时传入MyFile\aaa,MyFile\aaa代表要在MyFile文件夹中创建aaa文件夹,就相当于MyFile模块文件夹下还要创建MyFile文件夹,然后再创建aaa文件夹,MyFile模块文件夹下还要创建MyFile文件夹即创建了多级文件夹,由于mkdir方法只能创建单级文件夹,此时不符合mkdir方法的用法,所以会报错:
此时把参数MyFile\aaa改为aaa就行了:
未运行下述代码前,此时左侧的目录里还没有aaa文件夹
运行上述代码后,结果如下:
解答:
法一:使用mkdirs方法创建文件夹aaa
package com.itheima.a02Test;
import java.io.File;
import java.io.IOException;
public class Test1 {
public static void main(String[] args) throws IOException {
//1.创建a.txt文件的父级路径
File file=new File("aaa"); //由于是在当前模块下操作,所以用相对路径(不带磁盘的路径)即可
//2.创建父级路径
file.mkdirs();
//3.拼接父级路径和子级路径->父级路径:file;子级路径:a.txt
File src=new File(file,"a.txt");
//4.创建最终的a.txt文件
boolean b = src.createNewFile();
//5.判断
if(b){
System.out.println("创建成功"); //如果a.txt文件不存在就会创建成功
}else {
System.out.println("创建失败"); //如果a.txt文件存在就会创建失败
}
}
}
法二:使用mkdir方法创建文件夹aaa
package com.itheima.a02Test;
import java.io.File;
import java.io.IOException;
public class Test1 {
public static void main(String[] args) throws IOException {
//1.创建a.txt文件的父级路径
File file=new File("aaa"); //由于是在当前模块下操作,所以用相对路径(不带磁盘的路径)即可
//2.创建父级路径
file.mkdir();
//3.拼接父级路径和子级路径->父级路径:file;子级路径:a.txt
File src=new File(file,"a.txt");
//4.创建最终的a.txt文件
boolean b = src.createNewFile();
//5.判断
if(b){
System.out.println("创建成功"); //如果a.txt文件不存在就会创建成功
}else {
System.out.println("创建失败"); //如果a.txt文件存在就会创建失败
}
}
}