File类的常用方法2——高淇JAVA300讲笔记之IO和File

案例一:操作目录

 1 package com.bjsxt.io.file;
 2 
 3 import java.io.File;
 4 import java.io.FilenameFilter;
 5 
 6 /**
 7  * 5、操作目录
 8  * mkdir()  创建目录,必须确保 父目录存在,如果不存在,创建失败
 9  * mkdirs()  创建目录,如果父目录链不存在  一同创建
10  * list() 文件 | 目录字符串形式
11  * listFiles()
12  * static listRoots() 根路径
13  *
14  */
15 public class Demo04 {
16     public static void main(String[] args) {
17         String path = "E:/xp/test/";
18         File src = new File(path);  //文件夹
19         if(src.isDirectory()) {  //存在并且为目录
20             System.out.println("========子目录|文件名=======");
21             String[] subNames = src.list();
22             
23             for(String temp:subNames) {
24                 System.out.println(temp);
25             }
26             System.out.println("========子目录|文件File对象=======");
27             File[] subFiles = src.listFiles();
28             for(File temp:subFiles) {
29                 System.out.println(temp.getAbsolutePath());
30             }
31             System.out.println("========子目录.java对象=======");
32             //命令设计模式
33             subFiles = src.listFiles(new FilenameFilter() {
34                 
35                 @Override
36                 /**
37                  * dir 代表src
38                  */
39                 public boolean accept(File dir, String name) {
40 //                    System.out.println(dir.getAbsolutePath());
41                     return new File(dir,name).isFile() &&  name.endsWith(".java");
42                 }
43                 
44             });
45             for(File temp:subFiles) {
46                 System.out.println(temp.getAbsolutePath());
47             }
48             
49             
50         }
51     }
52     
53     public static void test1() {
54         String path = "E:/xp/test/parent/test";
55         File src = new File(path);
56 //        src.mkdir();
57         src.mkdirs();
58     }
59     
60 }

运行结果:

========子目录|文件名=======
2.jpg
a.txt
Demo03.java
test
========子目录|文件File对象=======
E:xp	est2.jpg
E:xp	esta.txt
E:xp	estDemo03.java
E:xp	est	est
========子目录.java对象=======
E:xp	estDemo03.java

案例二:输出子孙级目录

 1 package com.bjsxt.io.file;
 2 
 3 import java.io.File;
 4 import java.util.Arrays;
 5 
 6 /**
 7  * 输出子孙级目录|文件的名称(绝对路径)
 8  * 1、listFiles()
 9  * 2、递归
10  *
11  * static listRoots()  根路径
12  * 
13  */
14 public class Demo05 {
15     public static void main(String[] args) {
16         String path = "E:/xp/test";
17         File parent = new File(path);
18 //        printName(parent);
19         
20         File[] roots = File.listRoots();
21         System.out.println(Arrays.toString(roots));  //[C:\, D:\, E:\, F:]
22         for(File temp:roots) {
23 //            printName(temp);
24         }
25     }
26     /**
27      * 输出路径
28      */
29     public static void printName(File src) {
30         if(null==src || !src.exists()) {
31             return;
32         }
33         System.out.println(src.getAbsolutePath());
34         if(src.isDirectory()) {
35             for(File sub:src.listFiles()) {
36                 printName(sub);
37             }
38         }
39     }
40     
41 }
原文地址:https://www.cnblogs.com/swimminglover/p/8417212.html