5.6Java 创建File

5.6Java 创建File

File API

API说明
mkdir(必须存在上级目录)  mkdirs(上级目录不存在就创建出来) 创建目录,如果父目录链不存在则一同创建
list(这里只是下一级的名称,不是子孙级。要获取到子孙级要使用递归---方法自己调自己就是递归(递归级---递归头)) 下级名称
listFiles(拿到下一级的文件对象) 下级File
listRoots() 根路径

测试这些API:

package ioStudy;

import java.io.File;

/**
* 创建目录
* 1.mkdir--->确保上级目录存在,如果不存在则创建失败
* 2.mkdirs--->上级目录可以不存在,不存在的话则一同创建
* 列出下一级
* 1.list():找出下一级名称
* 2.listFile():列出下级File对象--->返回的是一个容器(字符串数组)
* 3.listRoots():windows找出盘符
* @author Lucifer
*/
public class TestDirDemo1 {
   public static void main(String[] args) {
       //定义对象路径
       File dir = new File("D:/workspace/practice/main/java/ioStudy/dir/test");

       //创建目录--->测试mkdir方法
       boolean flag = dir.mkdir();
       System.out.println(flag);

       //测试目录--->测试mkdirs方法
       flag = dir.mkdirs();
       System.out.println(flag);
//       flag = dir.delete();
//       System.out.println(flag);

       //测试列出下一级
       //列出之前首先要新建对象,保证对象是目录而不是文件
       File dir2 = new File("D:/workspace/practice/main/java/collection");
       String[] subName = dir2.list();
       for (String s : subName){
           //输出字符
           System.out.print(s + "\t");
      }

       //获取下一级对象--->listFiles
       File[] subFile = dir2.listFiles();
       //增强for循环打印出
       for (File f : subFile){
           System.out.println(f.getAbsolutePath() + "\t");
      }

       //列出所有的盘符---listRoot
       File[] roots = dir2.listRoots();
       //打印出
       for (File r : roots){
           System.out.println(r.getAbsolutePath());
      }
  }
}

回顾递归方法的使用:

  • 递归是自己调自己,要有两个关键部分

    • 递归头

    • 递归体

package ioStudy;

/**
* 简单回顾递归算法--->测试递归算法
* 递归:方法自己调用自己--->数据结构的压栈(占用内存很高)
* 包含部分:
* 1.递归头--->合适结束递归(循环结束条件)--->文件操作的时候递归很好用,因为结束条件好找
* 2.递归体--->重复调用
* @author Lucifer
*/
public class TestDirDemo2 {
   public static void main(String[] args) {
       //首先要明白递归式方法自己调用自己,所以要先写一个方法
       printTen(1);
  }

   /*写一个类方法*/
   public static void printTen(int n){
       /*先写递归头--->结束条件*/
       //打印1~10,到10结束那么就是写判断然后返回值结束方法
       //一定要结束方法,否则会内存溢出
       if (n > 10){
           //这是递归头
           return;
      }
       /*方法要可以输出查看调用了几次*/
       System.out.println(n);
       /*让方法自增*/
       printTen(n + 1); //递归体:每一次调用自己都+1
  }
}

 

It's a lonely road!!!
原文地址:https://www.cnblogs.com/JunkingBoy/p/14736468.html