构造方法
方法 | 作用 |
---|---|
File(String pathname) | 通过给定路径名-字符串转换为抽象路径名来创建新的File实例 |
File(String parent , String child) | 从父路径名字符串和子路径名字符串创建新的File实例 |
File(File parent , String child) | 从父抽象路径名和子路径名字符串创建新的File实例 |
public class Test{
public static void main(String[] args){
// 1、通过给定路径名-字符串转换为抽象路径名来创建新的File实例
File f1 = new File("D:\\a.txt");
File f2 = new File("D:\\music");
// 2、从父路径名字符串和子路径名字符串创建新的File实例
File f3 = new File("D:\\a","b.txt");
// 3、从父抽象路径名和子路径名字符串创建新的File实例
File f4 = new File(f2 , "c.mp4");
}
}
创建方法
方法 | 作用 |
---|---|
public boolean createNewFile() | 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件(文件存在,返回true。不存在返回 false) |
public boolean mkdir() | 创建由此抽象路径名命名的目录(文件夹) |
public boolean mkdirs() | 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录(创建多级目录) |
注意:
①:创建文件的时候,要确保上级目录存在,才可以创建成功
public class Test{
public static void main(String[] args) throws IOException {
// 1、创建一个文件对象,其实就是创建 一个路径的 对象
File f1 = new File("D:\\a.txt"); // 文件对象
File f2 = new File("D:\\b"); // 单级文件夹对象
File f3 = new File("D:\\c\\d"); // 多级文件夹对象
// 2、创建文件(就是在磁盘中创建这个路径的文件或者文件夹)
boolean a = f1.createNewFile();
boolean b = f2.mkdir();
boolean c = f3.mkdirs();
System.out.println(a +" " + b +" " + c);
}
}
删除方法
方法 | 作用 |
---|---|
public boolean delete() | 删除由此抽象路径名表示的文件或目录 |
注意:删除文件的时候,要确保文件夹里没有文件,才可以删除文件夹成功
public class Test2 {
public static void main(String[] args) {
// 1、创建文件对象
File f1 = new File("D:\\a.txt"); // 文件对象
File f2 = new File("D:\\c"); // 单级文件夹对象
// 2、删除文件(从磁盘中删除)
boolean a = f1.delete();
boolean b = f2.delete();
System.out.println(a + " " + b);
}
}
运行结果:true false ,并且 D盘下 的 a.txt 已经删除(直接从电脑删除,不放入回收站),但是第二个是 false 是因为,我们代码上方的注意事项,c 文件夹下还有 d 文件夹,所以删除失败!
判断和获取方法
方法 | 作用 |
---|---|
public boolean isDirectory() | 判断此抽象路径名表示的File是否为目录 |
public boolean isFile() | 判断此抽象路径名表示的File是否为文件 |
public boolean exists() | 判断此抽象路径名表示的File是否存在 |
public String getAbsolutePath() | 返回此抽象路径名的绝对路径名字符串 |
public String getPath() | 将此抽象路径名转换为路径名字符串 |
public String getName() | 返回此抽象路径名表示的文件或目录的名称 |
public String[] list() | 返回此抽象路径名表示的目录中的文件和目录的名称字符串数组 |
public File[] listFiles() | 返回此抽象路径名表示的目录中的文件和目录的File对象数组 |
public class Test {
public static void main(String[] args) {
// 1、创建一个文件对象,其实就是创建 一个路径的 对象
File f1 = new File("D:\\a.txt"); // 文件对象
File f2 = new File("D:\\b"); // 单级文件夹对象
File f3 = new File("D:\\c\\d"); // 多级文件夹对象
File f4 = new File("D:\\c");
// 2、判断此抽象路径名表示的File是否为文件和目录(文件夹)
boolean a = f1.isFile();
boolean b = f2.isDirectory();
// 3、判断此抽象路径名表示的File是否存在
boolean c = f1.exists();
// 4、返回此抽象路径名的绝对路径名字符串
String f3Path = f3.getAbsolutePath();
// 5、将此抽象路径名转换为路径名字符串
String path = f3.getPath();
// 6、返回此抽象路径名表示的文件或目录的名称
String name = f1.getName();
System.out.println(a + " " + b + " " + c);
System.out.println(f3Path);
System.out.println(path);
System.out.println(name);
// 7、返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
String[] list = f4.list();
for (String s : list) {
System.out.println(s);
}
// 8、返回此抽象路径名表示的目录中的文件和目录的File对象数组
File[] files = f4.listFiles();
for (File file : files) {
System.out.println(file);
}
}
}
运行结果
false true false
D:\c\d
D:\c\d
a.txt
d
D:\c\d
需求:在D盘下创建一个四级目录,以 a b c d 字母顺序创建,并且在 d 目录下 创建文件 e.mp4 和 f.txt(创建文件时,需要先去判断此文件是否存在)。最后遍历输出 a 文件夹下所有 文件的名字。并且遍历时,删除后缀为 .txt 的文件?
思路分析:
public class Test {
// 创建文件对象方法
public static void createFile(File f){
// 首先判断文件是否存在
if(!f.exists()){
// 不存在,创建文件
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 遍历文件,并删除后缀是 .txt 的文件
public static void showAndDel(File f){
// 判断是文件还是文件夹
if(f.isDirectory()){
File[] files = f.listFiles(); // 获取当前文件对象下的所有文件对象
for (File file : files) { // 遍历输出名字,并继续递归向下
System.out.println(file.getName());
showAndDel(file);
}
}else{
if(f.getName().endsWith(".txt")){ // 判断后缀是否是 .txt 是,执行删除
f.delete();
}
}
}
public static void main(String[] args) {
// 1、创建 4 个对象
File f1 = new File("D:\\a\\b\\c\\d");
File f2 = new File("D:\\a");
File f3 = new File(f1 , "e.mp4");
File f4 = new File(f1 , "f.txt");
// 2、磁盘创建 文件和文件夹
f1.mkdirs();
createFile(f3);
createFile(f4);
// 3、遍历删除
showAndDel(f2);
}
}