一.File的常见成员方法(创建,删除):
二.方法的代码实现:
1.createNewFile方法->创建一个新的空的文件:
如上图直接调用createNewFile方法会报错,处理方案如下:
本例选择第一个:
package com.itheima.a01myfile;
import java.io.File;
import java.io.IOException;
public class FileDemo4 {
public static void main(String[] args) throws IOException { //声明了一个异常
//1.createNewFile方法->创建一个新的空的文件
File f1=new File("D:\\JavaTest\\c.txt");
boolean b = f1.createNewFile();
System.out.println(b);//运行结果为true
}
}
方法解读:createNewFile方法返回值为布尔类型,返回true代表文件创建成功,返回false代表文件创建失败
本例中D盘下的JavaTest文件夹存在,而且在D盘下的JavaTest文件夹下此时没有要创建的文件c.txt,执行本例的代码后即可创建文件c.txt
注:
1.在路径存在的情况下:若要创建的文件已经存在会导致要创建的文件创建失败,createNewFile方法也就返回false(代
码不报错,只是文件创建不了)。
2.在路径(父级路径)不存在的情况下:代码会直接报错,createNewFile方法会有异常IOException。
3.在路径存在的情况下:(在要创建的不存在下)若要创建的没有后缀,则会创建一个没有后缀的文件,不是文件夹,更不会报错
package com.itheima.a01myfile;
import java.io.File;
import java.io.IOException;
public class FileDemo4 {
public static void main(String[] args) throws IOException { //声明了一个异常
//1.createNewFile方法->创建一个新的空的文件
File f1=new File("D:\\JavaTest\\ddd");
boolean b = f1.createNewFile();
System.out.println(b);//运行结果为true
}
}
-->createNewFile方法创建的一定是文件,如果没有后缀名,则创建一个没有后缀的文件。
2.mkdir(两个单词的缩写:make Directory,文件夹也叫目录-->创建目录即创建文件夹)方法-->创建单级文件夹
未执行mkdir方法前:
package com.itheima.a01myfile;
import java.io.File;
import java.io.IOException;
public class FileDemo4 {
public static void main(String[] args) throws IOException { //声明了一个异常
/*//1.createNewFile方法->创建一个新的空的文件
File f1=new File("D:\\JavaTest\\ddd");
boolean b = f1.createNewFile();
System.out.println(b);//运行结果为true*/
//2.mkdir(两个单词的缩写:make Directory,文件夹也叫目录-->创建目录即创建文件夹)
File f2=new File("D:\\JavaTest\\ddd");
boolean b = f2.mkdir();
System.out.println(b);
}
}
执行mkdir方法后b的结果为false,虽然D:\JavaTest\ddd路径存在,但创建失败,这是操作系统导致的,
在Windows操作系统中路径必须是唯一的,不能重复,此时创建的文件夹ddd与已有的文件重名,因此无法创建
把路径改为D:\JavaTest\eee,此时唯一,即可创建文件夹eee
package com.itheima.a01myfile;
import java.io.File;
import java.io.IOException;
public class FileDemo4 {
public static void main(String[] args) throws IOException { //声明了一个异常
/*//1.createNewFile方法->创建一个新的空的文件
File f1=new File("D:\\JavaTest\\ddd");
boolean b = f1.createNewFile();
System.out.println(b);//运行结果为true*/
//2.mkdir(两个单词的缩写:make Directory,文件夹也叫目录-->创建目录即创建文件夹)
File f2=new File("D:\\JavaTest\\eee");
boolean b = f2.mkdir();
System.out.println(b);
}
}
细节:
1.Windows操作系统中路径是唯一的,如果当前路径已经存在或者有误,则创建失败,返回false
2.mkdir方法只能创建单级文件夹,无法创建多级文件夹,如下:
package com.itheima.a01myfile;
import java.io.File;
import java.io.IOException;
public class FileDemo4 {
public static void main(String[] args) throws IOException { //声明了一个异常
/*//1.createNewFile方法->创建一个新的空的文件
File f1=new File("D:\\JavaTest\\ddd");
boolean b = f1.createNewFile();
System.out.println(b);//运行结果为true*/
//2.mkdir(两个单词的缩写:make Directory,文件夹也叫目录-->创建目录即创建文件夹)
File f2=new File("D:\\JavaTest\\JavaTest\\eee\\ccc");
boolean b = f2.mkdir();
System.out.println(b);
}
}
上述代码中b的值为false。
3.mkdirs方法--> 创建多级文件夹(也可以创建单级文件夹):
未执行mkdirs方法前:
执行mkdirs方法后:
package com.itheima.a01myfile;
import java.io.File;
import java.io.IOException;
public class FileDemo4 {
public static void main(String[] args) throws IOException { //声明了一个异常
/*//1.createNewFile方法->创建一个新的空的文件
File f1=new File("D:\\JavaTest\\ddd");
boolean b = f1.createNewFile();
System.out.println(b);//运行结果为true*/
/*//2.mkdir(两个单词的缩写:make Directory,文件夹也叫目录-->创建目录即创建文件夹)
File f2=new File("D:\\JavaTest\\JavaTest\\eee\\ccc");
boolean b = f2.mkdir();
System.out.println(b);*/
//3.mkdirs 创建多级文件夹
File f3=new File("D:\\JavaTest\\JavaTest\\eee\\ccc");
boolean b = f3.mkdirs();
System.out.println(b);
}
}
注:
mkdirs方法也可以创建单级文件夹,如下:
未执行mkdirs方法前:
执行mkdirs方法后:
package com.itheima.a01myfile;
import java.io.File;
import java.io.IOException;
public class FileDemo4 {
public static void main(String[] args) throws IOException { //声明了一个异常
/*//1.createNewFile方法->创建一个新的空的文件
File f1=new File("D:\\JavaTest\\ddd");
boolean b = f1.createNewFile();
System.out.println(b);//运行结果为true*/
/*//2.mkdir(两个单词的缩写:make Directory,文件夹也叫目录-->创建目录即创建文件夹)
File f2=new File("D:\\JavaTest\\JavaTest\\eee\\ccc");
boolean b = f2.mkdir();
System.out.println(b);*/
//3.mkdirs 创建多级文件夹
File f3=new File("D:\\JavaTest\\ggg");
boolean b = f3.mkdirs();
System.out.println(b);
}
}
mkdirs方法既可以创建多级文件夹,也可以创建单级文件夹,所以mkdir方法可以不用,但mkdir方法存在的最大意义在于mkdirs方法底层要用到mkdir方法-->所以mkdirs方法可以创建单级文件夹,如下:
4.delete方法-->删除文件,空文件夹:
未执行delete方法前:
a.删除文件:
执行delete方法后:
package com.itheima.a01myfile;
import java.io.File;
public class FileDemo5 {
public static void main(String[] args) {
//1.创建File对象
File f1=new File("D:\\JavaTest\\c.txt");
//2.删除
boolean b = f1.delete();
//3.打印结果
System.out.println(b);
}
}
删除成功,而且不会到回收站,删除就真的彻底删除了。
b.删除非空文件夹:(本例中JavaTest为非空文件夹)
package com.itheima.a01myfile;
import java.io.File;
public class FileDemo5 {
public static void main(String[] args) {
//1.创建File对象
File f1=new File("D:\\JavaTest\\JavaTest");
//2.删除
boolean b = f1.delete();
//3.打印结果
System.out.println(b);//运行结果为false
}
}
执行代码后:
上述代码表明delete方法不能删除非空文件夹。
c.删除空文件夹:(本例中eee为空文件夹)
package com.itheima.a01myfile;
import java.io.File;
public class FileDemo5 {
public static void main(String[] args) {
//1.创建File对象
File f1=new File("D:\\JavaTest\\eee");
//2.删除
boolean b = f1.delete();
//3.打印结果
System.out.println(b);//运行结果为true
}
}
执行代码后:
空文件夹eee删除成功,并且不会进回收站,删除了就真的彻底删除了。
d.注:
细节:如果删除的是文件,则直接删除,不走回收站。
如果删除的是空文件夹,则直接删除,不走回收站。
如果删除的是非空文件夹,则删除失败。