Day08 File类、递归

File类

1.概述

java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。
statiic String pathSeparator 与系统有关的路径分隔符。为了方便,它被表示为一个字符串。
static String separator 与系统有关的默认名称分隔符。为了方便,它被表示为一个字符串。

操作路径:

C:\develop\a\a.txt windows系统
C:/develop/a/a.txt Linux系统
推荐:“C:” + File.separator + “develop” + File.separator + “a” + File.separator + “a.txt”

路径

绝对路径:一个完整的路径
以盘符开始的路径
C:\a.txt
相对路径:一个简化的路径
相对指的是显贵与当前项目的根目录(C:\Users\itcast\IdeaProjects\shuangyuan)
如果使用当前项目的根目录,路径可以简化书写
C:\Users\itcast\IdeaProjects\shuangyuan\abc.txt ==> abc.txt

注意:

  1. 路径是不区分大小写的
  2. 路径中的文件名称分隔符windows使用反斜杠"",反斜杠是转义字符,两个反斜杠代表一个普通的反斜杠

2. 构造方法

  1. File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新File实例。
    private static void show01() {
        File f1 = new File("D:\\downloads");
        System.out.println(f1);

        File f2 = new File("D:\\downloads\\a.txt");
        System.out.println(f2);

        File f3 = new File("a.txt");
        System.out.println(f3);
    }
  1. File(String parent,String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新File实例。
    private static void show02(String parent, String child) {
        File file = new File(parent,child);
        System.out.println(file);
    }
  1. File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新File实例。
    private static void show03() {
        File parent = new File("C:\\");
        File file = new File(parent, "a.txt");
        System.out.println(file);
    }

3. 常用方法

获取功能的方法
  • public String getAbsolutePath():返回此File的绝对路径名字符串。
    private static void show01() {
        File f1 = new File("H:\\IdeaProjects\\LearnDemo\\a.txt");
        String absolutePath1 = f1.getAbsolutePath();
        System.out.println(absolutePath1);  //H:\IdeaProjects\LearnDemo\a.txt

        File f2 = new File("a.txt");
        String absolutePath2 = f2.getAbsolutePath();
        System.out.println(absolutePath2);  //H:\IdeaProjects\LearnDemo\a.txt
    }
  • public String getPath():将此File转换为路径名字符串。
    private static void show02() {
        File f1 = new File("H:\\IdeaProjects\\LearnDemo\\a.txt");
        System.out.println(f1.getPath());   //H:\IdeaProjects\LearnDemo\a.txt
        File f2 = new File("a.txt");
        System.out.println(f2.getPath());   //a.txt
    }
  • public String getName():返回由此File表示的文件或目录的名称。
    private static void show03() {
        File f1 = new File("H:\\IdeaProjects\\LearnDemo\\a.txt");
        System.out.println(f1.getName());   //a.txt
        File f2 = new File("a.txt");
        System.out.println(f2.getName());   //a.txt
    }
  • public long length():返回由此File表示的文件的大小,以字节为单位。
    private static void show04() {
        File f1 = new File("F:\\Test\\HelloWorld.java");
        long l1 = f1.length();
        System.out.println(l1);         //314
        File f2 = new File("F:\\Test\\2.jpg");
        long l2= f2.length();
        System.out.println(l2);
        File f3 = new File("F:\\YunNote");
        long l3 = f3.length();
        System.out.println(l3);
    }
判断功能的方法
  • public boolean exists():此File表示的文件或目录是否实际存在。
  • public boolean isDirectory:此File表示的是否为目录。
  • public boolean isFile():此File表示的是否为文件。
private static void show01() {
        File f1 = new File("F:\\Test\\HelloWorld.java");//存在的文件路径
        System.out.println(f1.exists());        //true
        System.out.println(f1.isDirectory());   //false
        System.out.println(f1.isFile());        //true
    }
创建删除功能的方法
  • public boolean createNewFile():当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
    private static void show01() {
        File f1 = new File("F:\\Test\\JavaLearn");
        try {
            System.out.println(f1.createNewFile());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
  • public boolean delete():删除由此File表示的文件或目录。 (** 目录必须为空才能删除**)
    private static void show02() {
        File f1 = new File("F:\\Test\\JavaLearn");
        boolean delete = f1.delete();
        System.out.println(delete);
    }
  • public boolean mkdir():创建由此File表示的目录。
    private static void show03() {
        File f1 = new File("F:\\Test\\JavaLearn");          //F:\Test路径存在
        boolean mkdir1 = f1.mkdir();
        System.out.println(mkdir1);       //true

        File f2 = new File("F:\\Test\\Java\\Doc\\Demo");    //F:\Test\Java\Doc路径不存在
        boolean mkdir2 = f2.mkdir();
        System.out.println(mkdir2);       //false
    }
  • public boolean mkdirs():创建由此File表示的目录,包括任何必需但不存在的父目录。
    private static void show04() {
        File f1 = new File("F:\\Test\\Java\\Doc\\Demo");
        boolean mkdirs = f1.mkdirs();
        System.out.println(mkdirs);
    }

4. 目录的遍历

  • public String[] list():返回一个String数组,表示该File目录中的所有子文件或目录。
   private static void show01() {
        File file = new File("F:\\Test");
        String[] arr = file.list();
        for (String fileName : arr) {
            System.out.println(fileName);
        }
    }
  • public File[] listFiles():返回一个File数组,表示该File目录中的所有的子文件或目录。
    private static void show02() {
        File f= new File("F:\\Test");
        File[] files = f.listFiles();
        for (File file : files) {
            System.out.println(file);
        }
    }

递归

1. 概述

递归:指在当前方法内调用自己的这种现象。

	private static a() {
		System.out.println("a方法!");
		a();
	}

递归的分类:直接递归和间接递归。

注意事项

  • 递归要有条件限定,使递归能够停下来,否则会发生内存溢出
  • 即使有条件限定,递归次数也不能过多,否则也会发生内存溢出
  • 构造方法禁止递归
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值