文章目录
- 1. File类概述和构造方法
- 2. 绝对路径和相对路径
- 3. File类创建功能【应用】
- 4. File类删除功能【应用】
- 5. File类判断和获取功能【应用】
- 6. 6File类练习一【应用】
- 7. File类练习二【应用】
1. File类概述和构造方法
-
File类介绍
- 它是文件和目录路径名的抽象表示
- 文件和目录是可以通过File封装成对象的
- 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已.它可以是存在的,也
- 可以是不存在的.将来是要通过具体的操作把这个路径的内容转换为具体存在的
-
File类的构造方法
-
示例代码
public class FileDemo01 {public static void main(String[] args) {//File(String pathname): 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例File f1 = new File("E:\\snow\\java.txt");System.out.println(f1);//File(String parent, String child): 从父路径名字符串和子路径名字符串创建新的 File实例File f2 = new File("E:\\snow","java.txt");System.out.println(f2);//File(File parent, String child): 从父抽象路径名和子路径名字符串创建新的File实例File f3 = new File("E:\\snow");File f4 = new File(f3,"java.txt");System.out.println(f4);} }
2. 绝对路径和相对路径
- 绝对路径
是一个完整的路径,从盘符开始 - 相对路径
是一个简化的路径,相对当前项目下的路径 - 示例代码
public static void main(String[] args) {// 是一个完整的路径,从盘符开始File file1 = new File("D:\\snow\\a.txt");// 是一个简化的路径,从当前项目根目录开始File file2 = new File("a.txt");File file3 = new File("模块名\\a.txt"); }
3. File类创建功能【应用】
-
方法分类
-
示例代码
public class FileDemo02 {public static void main(String[] args) throws IOException {//需求1:我要在E:\\snow目录下创建一个文件java.txtFile f1 = new File("E:\\snow\\java.txt");System.out.println(f1.createNewFile());System.out.println("--------");//需求2:我要在E:\\snow目录下创建一个目录JavaSEFile f2 = new File("E:\\snow\\JavaSE");System.out.println(f2.mkdir());System.out.println("--------");//需求3:我要在E:\\snow目录下创建一个多级目录JavaWEB\\HTMLFile f3 = new File("E:\\snow\\JavaWEB\\HTML");// System.out.println(f3.mkdir());System.out.println(f3.mkdirs());System.out.println("--------");//需求4:我要在E:\\snow目录下创建一个文件javase.txtFile f4 = new File("E:\\snow\\javase.txt");// System.out.println(f4.mkdir());System.out.println(f4.createNewFile());}
}
4. File类删除功能【应用】
-
方法分类
只能删除文件或者空文件夹 -
示例代码
public class FileDemo03 {public static void main(String[] args) throws IOException {// File f1 = new File("E:\\snow\\java.txt");//需求1:在当前模块目录下创建java.txt文件File f1 = new File("myFile\\java.txt");// System.out.println(f1.createNewFile());//需求2:删除当前模块目录下的java.txt文件System.out.println(f1.delete());System.out.println("--------");//需求3:在当前模块目录下创建snow目录File f2 = new File("myFile\\snow");// System.out.println(f2.mkdir());//需求4:删除当前模块目录下的snow目录System.out.println(f2.delete());System.out.println("--------");//需求5:在当前模块下创建一个目录snow,然后在该目录下创建一个文件java.txtFile f3 = new File("myFile\\snow");// System.out.println(f3.mkdir());File f4 = new File("myFile\\snow\\java.txt");// System.out.println(f4.createNewFile());//需求6:删除当前模块下的目录snowSystem.out.println(f4.delete());System.out.println(f3.delete());}
}
5. File类判断和获取功能【应用】
-
判断功能
-
获取功能
-
示例代码
public class FileDemo04 {public static void main(String[] args) {//创建一个File对象File f = new File("myFile\\java.txt");// public boolean isDirectory():测试此抽象路径名表示的File是否为目录// public boolean isFile():测试此抽象路径名表示的File是否为文件// public boolean exists():测试此抽象路径名表示的File是否存在System.out.println(f.isDirectory());System.out.println(f.isFile());System.out.println(f.exists());// public String getAbsolutePath():返回此抽象路径名的绝对路径名字符串// public String getPath():将此抽象路径名转换为路径名字符串// public String getName():返回由此抽象路径名表示的文件或目录的名称System.out.println(f.getAbsolutePath());System.out.println(f.getPath());System.out.println(f.getName());System.out.println("--------");// public File[] listFiles():返回此抽象路径名表示的目录中的文件和目录的File对象数组File f2 = new File("E:\\snow");File[] fileArray = f2.listFiles();for(File file : fileArray) {// System.out.println(file);// System.out.println(file.getName());if(file.isFile()) {System.out.println(file.getName());}}} }
6. 6File类练习一【应用】
-
案例需求
在当前模块下的aaa文件夹中创建一个a.txt文件 -
实现步骤
- 创建File对象,指向aaa文件夹
- 判断aaa文件夹是否存在,如果不存在则创建
- 创建File对象,指向aaa文件夹下的a.txt文件
- 创建这个文件
-
代码实现
public class Test1 {public static void main(String[] args) throws IOException {//练习一:在当前模块下的aaa文件夹中创建一个a.txt文件/* File file = new File("filemodule\\aaa\\a.txt");file.createNewFile();*///注意点:文件所在的文件夹必须要存在.//1.创建File对象,指向aaa文件夹File file = new File("filemodule\\aaa");//2.判断aaa文件夹是否存在,如果不存在则创建if(!file.exists()){//如果文件夹不存在,就创建出来file.mkdirs();}//3.创建File对象,指向aaa文件夹下的a.txt文件File newFile = new File(file,"a.txt");//4.创建这个文件newFile.createNewFile();} }
7. File类练习二【应用】
-
案例需求
删除一个多级文件夹 -
实现步骤
- 定义一个方法,接收一个File对象
- 遍历这个File对象,获取它下边的每个文件和文件夹对象
- 判断当前遍历到的File对象是文件还是文件夹
- 如果是文件,直接删除
- 如果是文件夹,递归调用自己,将当前遍历到的File对象当做参数传递
- 参数传递过来的文件夹File对象已经处理完成,最后直接删除这个空文件夹
-
代码实现
public class Test2 {public static void main(String[] args) {//练习二:删除一个多级文件夹//delete方法//只能删除文件和空文件夹.//如果现在要删除一个有内容的文件夹?//先删掉这个文件夹里面所有的内容.//最后再删除这个文件夹File src = new File("C:\\Users\\apple\\Desktop\\src");deleteDir(src);}//1.定义一个方法,接收一个File对象private static void deleteDir(File src) {//先删掉这个文件夹里面所有的内容.//递归 方法在方法体中自己调用自己.//注意: 可以解决所有文件夹和递归相结合的题目//2.遍历这个File对象,获取它下边的每个文件和文件夹对象File[] files = src.listFiles();//3.判断当前遍历到的File对象是文件还是文件夹for (File file : files) {//4.如果是文件,直接删除if(file.isFile()){file.delete();}else{//5.如果是文件夹,递归调用自己,将当前遍历到的File对象当做参数传递deleteDir(file);//参数一定要是src文件夹里面的文件夹File对象}}//6.参数传递过来的文件夹File对象已经处理完成,最后直接删除这个空文件夹src.delete();} }