# File类

## 介绍

概述：文件的增删改查操作。来自java.io包。

示例：

```java
package com.itcode.demo4;  


import java.io.File;  
import java.io.IOException;  
import java.text.ParseException;  
import java.util.Random;  

/** 
 * @Auther: 成都码到功成学员 
 * @Description: 
 * File类 
 */  
public class TestFile {  
    public static void main(String[] args) throws ParseException, IOException {  
//        File file = new File("d:/a.txt");或  
        File file = new File("d:\\a.txt");  
        System.out.println(file);//输出文件路径  
        file.renameTo(new File("a.md"));//改名  
        // 查看项目当前路径  
        System.out.println(System.getProperty("user.dir"));  
        // 项目当前路径里面创建文件  
        File f = new File("b.txt");  
        f.createNewFile();  
        // 文件类常用方法，是否存在，是否是文件/目录、长度等等  
        System.out.println(f.exists());  
        System.out.println(f.isFile());  
        System.out.println(f.isDirectory());  
        System.out.println(f.length());  
        System.out.println(f.lastModified());  
        System.out.println(f.getAbsolutePath());  
        System.out.println(f.delete());  

        // 创建单级mkdir多级mkdirs目录  
        System.out.println();  
        File f1 = new File("d:/a/b/c/d");  
        f1.mkdirs();  

    }  
}
```

效果：

![](https://3884904792-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LfnT30K7z1iNbyIaGVh%2F-LxVH-DsB4y0lJ8xCby5%2F-LxVJA_PipxT0IIokOH6%2Fimage.png?alt=media\&token=ae3392f3-da93-48d8-b8c3-97f873c734a2)

## 递归打印目录结构

示例：

```java
package com.itcode.demo4;  


import java.io.File;  
import java.io.IOException;  
import java.text.ParseException;  

/** 
 * @Auther: 成都码到功成学员 
 * @Description: 
 * File类练习 
 */  
public class TestFile1 {  
    public static void main(String[] args) throws ParseException, IOException {  

        // 练习一  
//        File f = new File("d:/bb/a.txt");  
//        // 判断是否存在  
//        boolean live = f.exists();  
//        if(live){  
//            boolean del = f.delete();  
//            if (del){  
//                System.out.println("删除成功");  
//            }else{  
//                System.out.println("删除失败");  
//            }  
//        }else {  
//            // 创建  
//            boolean cre = true;  
//            try {  
//                // 如果目录不存在，就创建  
//                File dir = f.getParentFile();  
//                dir.mkdirs();  
//                cre = f.createNewFile();  
//                System.out.println("创建成功");  
//            }catch (IOException e){  
//                System.out.println("创建失败");  
//                e.printStackTrace();  
//            }  
//        }  
//        f.renameTo(new File("d:/bb/ab.txt"));//重命名  
//        System.out.println("###########################");  
        // 练习2 递归打印目录结果  
        File file = new File("D:\\BaiduNetdiskDownload\\java基础西安讲师惠雷雨");  
        printFileTree(file,0);//初始值为0  
    }  
    public static void printFileTree(File f, int level){  
        System.out.println(f.getName());  
        for (int i = 0; i < level; i++) {  
            System.out.print("-");  
        }  
        if(f.isDirectory()){  
            File[] files = f.listFiles();  
            for (File ff : files){  
                printFileTree(ff, level+1);  
            }  
        }  
    }  
}
```

效果：

![](https://3884904792-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LfnT30K7z1iNbyIaGVh%2F-LxVH-DsB4y0lJ8xCby5%2F-LxVJHVEPtWgmAeez4Ur%2Fimage.png?alt=media\&token=de907627-3c3c-4155-ad61-4774af3f279a)
