概述
java.io.File类可以表示文件和文件夹,主要用于文件和文件夹的创建、查找和删除等操作 :::
file类构造方法
java.io.File类是通过路径名表示文件和文件夹
File(String path) 根据path路径创建File对象,表示文件夹或者文件
- File(String parent, String child) 根据父路径和子路径创建File对象,表示文件夹或者文件
File(File parent, String child) 使用File对象表示父路径,字符串表示子路径,创建新的File对象 :::
File类创建功能
File类可以创建文件和文件夹
public boolean createNewFile() 创建新文件, 创建成功返回true。如果文件已存在,则无法创建,返回false
- public boolean mkdir() 创建单级文件夹, 创建成功返回true,如果文件夹已存在,则无法创建,返回false(如果父目录不存在,也无法创建)
public boolean mkdirs() 创建一个多级文件夹, 创建成功返回true。如果文件夹已存在,则无法创建,返回false(如果父目录不存在,会一并创建) :::
File类删除功能
File类可以删除文件和文件夹
public boolean delete()删除该File对象表示的文件或文件夹
删除目录时的注意事项:
delete方法直接删除不走回收站
- 如果删除的是一个文件,直接删除
如果删除的是一个文件夹,如果文件夹中有内容,则无法删除 :::
File类判断和获取功能
:::tips
public boolean isDirectory() 判断是否是文件夹,如果是返回true
- public boolean isFile() 判断是否是文件,如果是返回true
- public boolean exists() 判断文件或文件夹是否存在,存在返回true
- public String getAbsolutePath() 获取File对象的绝对路径
- public String getPath() 获取创建对象时给出的路径(构造方法的参数路径)
- public String getName() 获取文件或文件夹名字(路径中最后一个斜杠后面的内容)
public long length() 获取文件的大小, 返回该文件的字节数。(对文件夹无效) :::
File类遍历文件夹
File类的listFiles()可以列出文件夹中的所有内容
public File[] listFiles() 返回此抽象路径名表示的目录中的文件和文件夹的File对象数组
注意
File对象只有代表文件夹,才能调用listFiles()
如果File对象代表文件,调用listFiles() 得到的结果是null :::
/*
File类的创建功能:
boolean createNewFile() 创建新文件, 创建成功返回true,如果文件已存在,则无法创建,返回false。
boolean mkdir() 创建单级文件夹, 创建成功返回true.
如果文件夹已存在,则无法创建,返回false。(如果父目录不存在,也无法创建)
(其实就是创建路径的最后一层)
boolean mkdirs() 创建一个多级文件夹, 创建成功返回true。
如果文件夹已存在,则无法创建,返回false。(如果父目录不存在,会一并创建)
注意:
Windows中文件名不区分大小写。
Java中路径斜杠支持\\ 或者 // 或者 / 写法。
*/
public class Demo01File {
public static void main(String[] args) throws IOException {
//在File文件夹下创建hello.txt文件
File f1 = new File("E:\\File\\hello.txt");
//如果文件不存在就直接创建,存在就不创建
boolean newFile = f1.createNewFile();
System.out.println(newFile);
//在File文件夹下创建a文件夹
File f2 = new File("E:\\File\\a");
//创建最后一级,(需要包装最后一级之前文件夹都存在才能成功)
boolean mkdir = f2.mkdir();
System.out.println(mkdir);
//在File文件夹下创建多级文件夹
File f3 = new File("E:\\File\\aa\\bb");
boolean mkdirs = f3.mkdirs();
System.out.println(mkdirs);
}
}
/*
File删除功能:
boolean delete() 删除该File对象表示的文件或文件夹。
注意:
1.删除不走回收站
2.如果删除的是文件,直接删除。
3.如果删除的是文件夹,文件夹如果不为空,则无法删除。
*/
public class Demo02File {
public static void main(String[] args) {
//删除文件夹,需为空文件夹才能删除成功
File f1 = new File("E:\\File\\aa\\bb");
System.out.println("f1.delete() = " + f1.delete());
//删除文件
File f2 = new File("E:\\File\\hello.txt");
System.out.println("f2.delete() = " + f2.delete());
}
}
/* File类的判断功能: boolean isDirectory() 判断是否是文件夹,如果是返回true boolean isFile() 判断是否是文件,如果是返回true boolean exists() 判断文件或文件夹是否存在,存在返回true */ public class Demo03File { public static void main(String[] args) { //文件夹 File f1 = new File("E:\\File\\a"); System.out.println("f1.isDirectory() = " + f1.isDirectory()); //文件 File f2 = new File("E:\\File\\hello.txt"); System.out.println("f2.isFile() = " + f2.isFile()); //判断文件夹或者文件是否存在 System.out.println(f1.exists()); } }
/* File类的获取功能: String getAbsolutePath() 获取File对象的绝对路径(完整路径) String getPath() 获取创建File对象时给出的路径 String getName() 获取文件或文件夹名字(路径中最后一个斜杠后面的内容) long length() 获取文件的大小,返回文件的字节数。(对文件夹无效) */ public class Demo04File { public static void main(String[] args) { File f1 = new File("File\\a"); System.out.println("f1.getAbsoluteFile() = " + f1.getAbsoluteFile()); System.out.println("f1.getPath() = " + f1.getPath()); System.out.println("f1.getName() = " + f1.getName()); File f2 = new File("D:\\javacode\\JavaSEReinforce\\Day10FileIO\\File\\a\\Hello.txt"); System.out.println("f2.length() = " + f2.length()); } }
/* 绝对路径与相对路径 绝对路径:从盘符开始 相对路径:IDEA中从项目路径开始 */ public class Demo05File { public static void main(String[] args) { //绝对路径:直接盘符开头,完整路径 File f1 = new File("D:\\javacode\\JavaSEReinforce\\Day10FileIO\\File\\a"); //相对路径,直接文件夹或者文件名开头 //在idea中如果使用相对路径会默认加上工程的路径 File f2 = new File("File\\a"); System.out.println("f1.getAbsolutePath() = " + f1.getAbsolutePath()); System.out.println("f2.getAbsolutePath() = " + f2.getAbsolutePath()); } }
public class Demo01 { public static void main(String[] args) { File file = new File("E:\\DemoClass"); findAllJava(file); } public static void findAllJava(File file) { //列出文件夹的所有内容 File[] list = file.listFiles(); //循环遍历 for (File f : list) { //如果是文件 if (f.isFile()) { //获取文件名 String name = f.getName(); //如果文件名后缀是.java if (name.endsWith(".java")) { //输出 System.out.println(name); } } else { //将文件夹递归 findAllJava(f); } } } }