java学习笔记 java.io.File类

 1 import java.io.File;
 2 import java.io.IOException;
 3 
 4 public class FileTest {
 5     public static void main(String[] args) {
 6         String filename1 = "d:" + File.separator + "aaa.txt";
 7         String filename2 = "d:" + File.separator + "baidu download";
 8         String filename3 = "d:" + File.separator + "baidu download00";
 9         File f1 = new File(filename1);
10         File f2 = new File(filename2);
11         File f3 = new File(filename3);
12         
13         /*
14         try {
15             System.out.println(f1.createNewFile());
16             System.out.println(f1.delete());//文件创建后又被删除
17             //f2.delete();
18             //f3.delete();以上两行不必要写,System.out.println(f3.delete());已具有删除功能。
19             //System.out.println(f2.delete());
20             //System.out.println(f3.delete());
21         } catch (IOException e) {
22             e.printStackTrace();    
23         }
24         */
25         
26         try {
27             System.out.println(f3.mkdir());//File的创建文件夹方法。
28             if(f1.exists()) {
29                 System.out.println(f1.delete());
30                 System.out.println(f1.createNewFile());        
31             }else {
32                 f1.createNewFile();    //判断file是否存在,如果存在,删除后再创建。不存在,则直接创建文件。
33             }
34         }catch (IOException e) {
35             e.printStackTrace();    
36         }
37         
38         String filename4 = "d:" + File.separator;
39         String str1[];
40         String str2[];
41         File fi4 = new File(filename4);
42         str1 = fi4.list();
43         //str2 = fi4.listFiles();//方法的名字是listFiles();不是listFile();listFiles()方法返回的是
44                 //File[]数组。        
45         File f[] = fi4.listFiles();
46         
47         for (int i = 0;i < str1.length;i++) {
48             System.out.println(str1[i] + " ");            
49         }
50         System.out.println("++++++++++++++++++++++++++");
51         
52         for (int i = 0;i < f.length;i++) {
53             System.out.println(f[i] + " ");            
54         }
55         
56         String filename5 = "d:" + File.separator + "baidu download";
57         File fi5 = new File(filename5);
58         System.out.println(fi5.isDirectory());
59     }    
60 }
61 /*
62 错误之处:
63     1.要java.io包要引用。File在java.io包里面。用import java.io.File ;import java.io.IOException
64     2.File.separator是一个常量,是File类的静态属性。所以使用的形式是File.separator。
65     3.File创建一个新文件时会产生IOException,而这种Exception是必须要抓取的,必须要写try catch
66         语句。
67     4.异常的方法之一:异常对象.printStackTrace();
68     5.此方法只能在已有的文件夹下创建文件。
69     6.使用File类的public boolean delete()方法时,File路径可以死文件名和文件夹。当删除一个文件夹
70             时,文件夹必须为空才能执行。
71     7.使用delete()方法,最好使用语句System.out.println(f.delete())来执行,此语句不但可以执行删
72             除操作功能,又能判断是否执行。
73     8.使用File类的createNewFile是返回boolean值,同样可以通过System.out.println(f1.createNewFile());
74             来判断是否创建了新文件。
75     9.File类的 createNewFile();delete();exists();mkdir();isDirectory();方法的返回值都是boolean类型。
76     10.方法的名字是listFiles();不是listFile();
77     11.listFiles()方法返回的是File[]数组。listFiles()方法打印的是File类的对象,是完整的路径名。
78     12.
79 */

File类的练习题打印File目录:

 1 import java.io.File;
 2 import java.io.IOException;
 3 
 4 
 5 public class ListFilesTest {
 6     public static void main(String[] args) {
 7         /*
 8         String filename1 = "d:" + File.separator + "baidu download00";
 9         File f[];
10         File fi1 = new File(filename1);
11         f = fi1.listFiles();
12         
13         for (int i = 0;i < f.length;i++) {
14             System.out.println(f[i] + " ");            
15         }
16         */
17         ListFilesTest t1 = new ListFilesTest();
18         String filename1 = "d:" + File.separator + "0";
19         File f = new File(filename1);
20         t1.printFiles1(f,0);
21         t1.printFiles(f);
22         //File f1[] = f.listFiles();
23         //System.out.println(f1.length);
24         
25     }
26     
27     public void printFiles(File f) {
28             if (f.exists()) {    
29                 if (f.isDirectory()) {
30                     File f1[] = f.listFiles();
31                     //if(f1.length != 0 ) {
32                         for(int i = 0;i < f1.length;i++) {
33                             printFiles(f1[i]);    
34                         }    
35                     //}//else {
36                         //System.out.println(f.getName());    
37                     //}    
38                 
39                 }else {
40                     System.out.println(f);    
41                 }
42                                 
43             }
44     
45     }
46     
47     public void printFiles1(File f,int j) {
48             String str0 = " ";
49             for (int k = 0;k < j;k++) {
50                 str0 = str0 + "  ";    
51             }
52             
53             if (f.exists()) {    
54                 //System.out.println(f.getName());
55                 if (f.isDirectory()) {
56                     File childs[] = f.listFiles();
57                     for (int i = 0;i < childs.length;i++) {
58                         System.out.println(str0 + childs[i].getName());
59                         if(childs[i].isDirectory()) {
60                             printFiles1(childs[i],++j);
61                         }    
62                     }    
63                 }
64             }
65     }
66 }
67 /*
68 1.如果要在递归方法中使用计数器,需要在递归方法本生的参数中设置一个变量来计数。
69 2.在写逻辑性结构时,还是要画图,这样会很清晰,不会造成懵逼
70 */
原文地址:https://www.cnblogs.com/yhwsy/p/5698429.html