zoukankan      html  css  js  c++  java
  • 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 */
  • 相关阅读:
    模块三 GO语言实战与应用-条件变量sync.Cond(上)
    模块三 GO语言实战与应用-sync.Mutex与sync.RWMutex
    模块三 GO语言实战与应用-更多的测试手法
    模块三 GO语言实战与应用-测试的基本规则和流程(下)
    模块三 GO语言实战与应用-测试的基本规则和流程(上)
    模块二 GO语言进阶技术-PANIC函数、RECOVER函数以及DEFER语句(下)
    CentOS7 相关命令-sunziren
    Thymeleaf如何回填复选框?-sunziren
    Thymeleaf中如何判断字符串是否包含或者不包含某个子串?-sunziren
    MySQL Innodb Engine--修改数据时先写Buffer Pool还是先写Redo Log
  • 原文地址:https://www.cnblogs.com/yhwsy/p/5698429.html
Copyright © 2011-2022 走看看