zoukankan      html  css  js  c++  java
  • JavaSE: File类

    1.  基本概念

        java.io.File 类主要用于描述文件目录路径的抽象表示信息,可以获取文件或目录的特征信息,如: 大小等。

    2.  常用方法

        方法声明                  功能描述

        <1>File(String pathname)              根据参数指定的路径名来构造对象

        <2>File(String parent, String child)           根据参数指定的父路径和子路径信息构造对象

        <3>File(File parent, String child)          根据参数指定的父抽象路径和子路径信息构造对象

        <4>boolean exists()                测试此抽象路径名表示的文件或目录是否存在

        <5>String getName()                 用于获取文件的名称

        <6>long length()                   返回由此抽象路径名表示的文件的长度

        <7>long lastModified()              用于获取文件的最后一次修改时间

        <8>String getAbsolutePath()            用于获取绝对路径信息

        <9>boolean delete()                用于删除文件,当删除目录是要求是空目录

        <10>boolean createNewFile()            用于创建新的空文件

        <11>boolean mkdir()                用于创建目录

        <12>boolean mkdirs()                用于创建多级目录

        <13>File[] listFiles()                获取该目录下的所有内容

        <14>boolean isFile()                判断是否为文件

        <15>boolean isDirectory()              判断是否为目录

        <16>File[] listFiles(FileFilter filter)           获取目录下满足筛选器的所有内容

    3.  案例题目

          遍历指定目录以及子目录中的所有内容并打印出来         

        思路:

      1       class FileTest{
      2 
      3   
      4 
      5         //  自定义成员方法,实现指定目录以及子目录中,所有内容的打印
      6 
      7         public static void show(File file){
      8 
      9           //  获取目录f3下的所有内容,并记录到一维数组中
     10 
     11           File[] filesArray = file.listFiles();
     12 
     13           //  遍历数组
     14 
     15           for (File tf : filesArray){
     16 
     17             String name = tf.getName();
     18 
     19             //  判断是否为文件,若是则直接打印文件名称
     20 
     21             if ( tf.isFile() ){
     22 
     23               println(name);
     24 
     25             }
     26 
     27             //  若是目录,则使用[]将目录名称括起来
     28 
     29             if (tf.isDirectory()){
     30 
     31               println("[" + name + "]");
     32 
     33               show(tf);
     34 
     35             }
     36 
     37           }
     38 
     39         }
     40 
     41  
     42 
     43         main() throws IOException {
     44 
     45  
     46 
     47           //  1.  构造File类型的对象,与 d:/a.txt 文件关联
     48 
     49           File f1 = new File("d:/a.txt");
     50 
     51           //  2.  若文件存在,则获取文件的相关特征信息,并打印,随后删除文件
     52 
     53           if (f1.exists()) {
     54 
     55             println("文件名称:" + f1.getName() );
     56 
     57             println("文件大小:" + f1.length() );
     58 
     59             Date d1 = new Date(f1.lastModified());
     60 
     61             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     62 
     63             println("文件的最后一次修改时间:" + sdf.format(d1));
     64 
     65             //  绝对路径:  以根目录开始的路径信息,如: c:/  d:/  /..
     66 
     67             //  相对路径:  以当前目录所在位置开始的路径信息,如:./  ../  相对路径
     68 
     69             println("文件的绝对路径信息是:" + f1.getAbsolutePath());
     70 
     71             println(f1.delete() ? "文件删除成功":“文件创建失败!”);
     72 
     73           }else{
     74 
     75             //  3.  若文件不存在,则创建新的空文件
     76 
     77             println(f1.createNewFile() ? "文件创建成功" : "文件创建失败");
     78 
     79           }
     80 
     81  
     82 
     83           //  4.  实现目录的删除和创建
     84 
     85           File f2 = new File("d:/捣乱/猜猜我是谁/你猜我不猜/死鬼");
     86 
     87           if (f2.exists()){
     88 
     89             println("目录名称是:" + f2.getName());
     90 
     91             println(f2.delete() ? "目录删除成功":“目录删除失败”);
     92 
     93           } else{
     94 
     95             //println(f2.mkdir()?"目录创建成功":"目录创建失败");  //  创建单层目录
     96 
     97             println(f2.mkdirs()?“目录创建成功”:"目录创建失败");  //  创建多层目录
     98 
     99           }
    100 
    101  
    102 
    103           //  5.  实现将指定目录中的所有内容打印出来
    104 
    105           File f3 = new File("d:/捣乱");
    106 
    107           //  获取目录f3下的所有内容,并记录到一维数组中
    108 
    109           File[] filesArray = f3.listFiles();
    110 
    111           //  遍历数组
    112 
    113           for(File tf: filesArray){
    114 
    115             String name = tf.getName();
    116 
    117             //  判断是否为文件,若是则直接打印文件名称
    118 
    119             if (tf.isFile()) {
    120 
    121               println(name);
    122 
    123             }
    124 
    125             //  若是目录,则使用[]将目录名称括起来
    126 
    127             if (tf.isDirectory()){
    128 
    129               println("[" + name + "]");
    130 
    131             }
    132 
    133           }
    134 
    135  
    136 
    137           //  6.  实现目录中所有内容的获取,同时进行过滤
    138 
    139           //  匿名内部类的语法格式:接口 / 父类类型 引用变量名 = new 接口/父类类型() {方法的重写};
    140 
    141           /*     FileFilter fileFilter = new FileFilter(){
    142 
    143                   @Override
    144 
    145                   public boolean accept(File pathname){
    146 
    147                     //  若文件名是以  .avi为结尾,则返回true表示保留,否则,返回false (表示丢弃)
    148 
    149                     return pathname.getName().endsWith(".avi");
    150 
    151                   }
    152 
    153                } ;
    154 
    155           */
    156 
    157  
    158 
    159           //  Lambda 表达式的格式:(参数列表) -> {方法体}
    160 
    161           FileFilter fileFilter = (File pathname) -> {return pathname.getName().endsWith(".avi");};
    162 
    163           File[] filesArray2 = f3.listFiles(fileFilter);
    164 
    165           for(File tf : filesArray2){
    166 
    167             println(tf);
    168 
    169           }
    170 
    171  
    172 
    173           //  7.  使用递归的思想,获取目录,以及子目录中的内容
    174 
    175           show(new File("d:/捣乱"));
    176 
    177         }
    178 
    179       }
  • 相关阅读:
    JDBC
    SQL语法(3)
    数据库设计和三大范式
    SQL语法(2)
    SQL语法(1)
    数据库的概念以及MYSQL的安装和卸载
    IO流(下)
    IO流(上)
    bash: javac: command not found...
    R语言绘制地图
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/14866444.html
Copyright © 2011-2022 走看看