zoukankan      html  css  js  c++  java
  • File类的常用方法和练习

    File类常用的判断方法

     1 import java.io.File;
     2 import java.text.SimpleDateFormat;
     3 import java.util.Date;
     4 
     5 /**
     6  * File中常用的判断方法
     7  */
     8 public class Test {
     9     public static void main(String[] args) {
    10 
    11         File file1 = new File("java.txt");
    12         //是否是文件
    13         System.out.println(file1.isFile());
    14 
    15         //是否是文件夹
    16         System.out.println(file1.isDirectory());
    17 
    18         //是否是隐藏的
    19         System.out.println(file1.isHidden());
    20 
    21         //是否存在
    22         System.out.println(file1.exists());
    23 
    24         File file = new File("java.txt");
    25         //查看绝对路径
    26         System.out.println(file.getAbsolutePath());
    27 
    28         //查看相对路径
    29         System.out.println(file.getPath());
    30 
    31         //文件的大小  以字节形式返回
    32         //tips:UTF-8编码 1个汉字=3个字节
    33         System.out.println(file.length());
    34 
    35         //最后修改时间
    36         Date date = new Date(file.lastModified());
    37         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
    38         System.out.println(simpleDateFormat.format(date));
    39 
    40         //打印同级目录下的所有文件和文件夹的名字
    41         File file2 = new File("根目录");
    42         String[] list = file2.list();
    43         for (String name : list) {
    44             System.out.println(name);
    45         }
    46 
    47         //获取目录下的同级文件和文件夹的File对象
    48         //通过for循环可以打印出文件的绝对路径
    49         File[] files = file2.listFiles();
    50         for (File f : files) {
    51             System.out.println(f);
    52         }
    53 
    54     }
    55 }

    File类的几个小练习

    统计项目根目录下所有以.txt结尾的文件数量

    import java.io.File;
    
    /**
     * 统计根目录中所有以txt为结尾的文件的数量
     */
    public class Test {
        public static void main(String[] args) {
            File file = new File("D:/JAVA/达人课项目/ssm-demo0(1.登陆功能)");
             int count = 0;
            String[] list = file.list();
            for (int i = 0; i < list.length; i++) {
                    if (list[i].endsWith(".txt")) {
                        count++;
                        System.out.println(list[i]);
                    }
            }
            System.out.println(count);
        }
    }

    统计项目根目录下所有以.txt结尾的文件数量(优化版)

     1 import java.io.File;
     2 
     3 /**
     4  * 统计根目录中所有以txt为结尾的文件的数量
     5  */
     6 public class Test {
     7     public static void main(String[] args) {
     8         File file = new File("根目录");
     9         File[] files = file.listFiles();
    10         int count = 0;
    11         for (File name : files) {
    12             if (name.toString().endsWith(".txt")) {
    13                 if (name.isFile()) {
    14                     count++;
    15                     System.out.println(name);
    16                 }
    17             }
    18         }
    19         System.out.println("以.txt为结尾的文件数量是" + count);
    20     }
    21 }

    上面那个版本如果根目录下有文件的名字后缀是.txt的文件夹也会被统计进去,这样的话就用File类中的listFiles方法来返回File类型的数组,调用里面的isFile方法,如果是文件再统计数量.

     输出指定目录内的全部文件,并且以缩进的格式打印出来

     1 import java.io.File;
     2 import java.util.Scanner;
     3 
     4 /**
     5  * 输出指定目录下所有文件的名称,包括文件夹里的
     6  */
     7 public class Test {
     8     
     9     private static int count = 0;
    10 
    11     public static void main(String[] args) {
    12         findFile(getFile());
    13     }
    14     
    15     public static void findFile(File file) {
    16         File[] fileArray = file.listFiles();
    17         for (int i = 0; i < fileArray.length; i++) {
    18             for (int j = 0; j < count; j++) {
    19                 System.out.print("	");
    20             }
    21             System.out.println(fileArray[i]);
    22             if (i == fileArray.length - 1) {
    23                 count--;
    24             }
    25             if (fileArray[i].isDirectory()) {
    26                 count++;
    27                 findFile(fileArray[i]);
    28             }
    29 
    30         }
    31     }
    32 
    33     public static File getFile() {
    34         System.out.println("请输入要显示名称的目录");
    35         Scanner sc = new Scanner(System.in);
    36         while (true) {
    37             String s = sc.nextLine();
    38             File file = new File(s);
    39             if (!file.exists()) {
    40                 System.out.println("输入目录有误,请重新输入!");
    41             } else if (file.isFile()) {
    42                 System.out.println("您输入的是文件的路径!请重新输入");
    43             } else {
    44                 return file;
    45             }
    46         }
    47     }
    48 }

    心得

    主要难点有两个,一个是如何控制缩进增加和减少,一个是递归打印文件夹内的文件

     

  • 相关阅读:
    [component]button skin–按钮组件外观
    as3 图片平滑方法
    SOLVED: Right Click in AS3
    一个超高效的不规则物体碰撞检测的类
    flex中的css应用
    控制时间间隔
    用flash cs3美化flex3之skin开发
    AS3实现RPG游戏鼠标8方向操作
    log4net basic example write to file
    观察者模式(C#实现 + eventhandler)
  • 原文地址:https://www.cnblogs.com/xiaowangtongxue/p/10718833.html
Copyright © 2011-2022 走看看