zoukankan      html  css  js  c++  java
  • JAVA基础File类


    一、File类概述

        File类是文件和目录路径名的抽象表示形式。File类可以理解为一个文件路径或者文件夹路径的JAVA表现形式,
    而路径又可以分为绝对路径(是一个固定路径,从盘符开始),相对路径(相对于eclipse下的路径)。
      举例:
    绝对路径:D:\\eclipse
    相对路径:java.txt


    二、常用构造方法

        File(String pathname):根据一个路径得到File对象。
        File(String parent, String child):根据一个目录和一个子文件/目录得到File对象。
        File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象。
      举例:

     1 //File(String pathname)构造
     2 File f=new File("d:\\lcy");
     3 //exists()方法为测试此抽象路径名表示的文件或目录是否存在。
     4 System.out.println(f.exists());
     5 //File(String parent, String child)构造
     6 File f1=new File("D:\\lcy", "a1.txt");
     7 System.out.println(f1.exists());
     8 //File(File parent, String child)构造
     9 File f3 = new File(f,"a1.txt");
    10 System.out.println(f3.exists());

    三、常用方法

        File类的方法按照用途的不同可以大致分为:创建功能、修改功能(重命名和删除)、

      判断功能(判断是文件夹还是文件)、获取功能(获取文件名数组,获取文件大小等)。

    1、创建功能

        createNewFile():创建文件 如果存在这样的文件,就不创建了
        mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
        mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
      这三个方法都是无参返回值为boolean类型的方法,其中mkdirs()方法最为常用,因为File类一般都是与IO流一同使用
    而输出流在目标文件不存在的时候回自动帮你创建文件。
      举例:

    1 //createNewFile()方法创建文件
    2 File file = new File("a.txt");
    3 System.out.println(file.createNewFile());
    4 //在相对路径下创建b文件夹
    5 File file2 = new File("b");
    6 System.out.println(file2 .mkdirs());
    7 //在相对路径下创建d文件夹,mkdirs()方法会自动帮你创建父文件夹
    8 File file3 = new File("c/s/d");
    9 System.out.println(file3.mkdirs());

    2、修改功能

        renameTo(File dest):把文件重命名为指定的文件路径。
      返回值为boolean类型,需要注意的是如果路径名相同,就是改名。如果路径名不同,就是改名并剪切。
        delete():删除文件或者文件夹。
      注意:只能删除空的文件夹,如果文件夹里有文件想要删除,则需要先把文件删除。

    3、判断功能

        isDirectory():判断是否是目录
        isFile():判断是否是文件
        exists():判断是否存在
        isHidden():测试此抽象路径名指定的文件是否是一个隐藏文件
        isAbsolute():测试此抽象路径名是否为绝对路径
      这三个方法一般和if语句一起使用。
      举例:

    1 //判断是否为绝对路径
    2 System.out.println(f.isAbsolute());
    3 //判断是否为文件
    4 System.out.println(file.isFile());
    5 //判断是否为文件夹
    6 System.out.println(file3.isDirectory());
    7 //是否包含隐藏文件
    8 System.err.println(f1.isHidden());

    4、获取功能

        getAbsolutePath():获取绝对路径 - 字符串
        getPath():获取路径 - 字符串
        getName():返回此路径名表示的文件或目录的名称。
        length():获取文件长度 - 字节数
        lastModified():获取最后一次的修改时间 - 毫秒值(lang类型)
        list():获取指定目录下的所有文件或者文件夹的名称数组 - 数组
        listFiles():获取指定目录下的所有文件或者文件夹的File数组 - 数组
        getAbsoluteFile():返回此相对路径的绝对路径 - File对象
        getAbsolutePath():返回此相对路径的绝对路径 - 字符串
        getParent():返回此路径名父目录的路径名字符串;如果没有父目录,则返回 null。
        getParentFile():返回此路径名父目录的路径对象;如果没有父目录,则返回 null。

      举例:

     1 //返回此相对路径的绝对路径 - File对象
     2 System.out.println(file2.getAbsoluteFile());
     3 //返回此相对路径的绝对路径 - 字符串
     4 System.out.println(file3.getAbsolutePath());
     5 //获取此路径名父目录的路径名字符串
     6 System.out.println(f3.getParent());
     7 //获取此路径名父目录的路径对象
     8 System.out.println(f3.getParentFile());
     9 //获取文件长度
    10 System.out.println(file.length());
    11 //获取最后一次的修改时间
    12 long lastModified = file.lastModified();
    13 Date d=new Date(lastModified);
    14 //用Date里的过时方法显示时间,格式如:2086-9-24 21:44:33
    15 System.out.println(d.toLocaleString());
    16 File file4 = new File("lcy.txt");
    17 //将file改为file4
    18 file.renameTo(file4);

    四、File类的综合练习
        需求:统计文件夹里各个类型文件的个数,如:java类型的文件有 4 个、txt类型的文件有 77 个...... 。

      实现步骤:

     1 // 创建一个HashMap,key用来存后缀名 value用来存个数
     2 static HashMap<String, Integer> hs = new HashMap<>();
     3 
     4 public static void main(String[] args) {
     5 //目标文件夹的File对象
     6 File file = new File("D:\\aa");
     7 //将File对象传入到统计方法里
     8 tj(file);
     9 Set<Entry<String, Integer>> entrySet = hs.entrySet();
    10 for (Entry<String, Integer> entry : entrySet) {
    11 String key = entry.getKey();
    12 Integer value = entry.getValue();
    13 System.out.println(key + "类型的文件有" + value + "个");
    14 }
    15 }
    16 
    17 // 定义统计方法
    18 public static void tj(File f) {
    19 //先判断是否为文件夹
    20 if (f.isDirectory()) {
    21 //判断是否为空
    22 if (f != null) {
    23 // System.out.println(f);
    24 //获取此文件夹的所有文件或者文件夹的File数组
    25 File[] listFiles = f.listFiles();
    26 //遍历File[]
    27 for (File file : listFiles) {
    28 //判断文件夹里的内容是否是文件
    29 //是文件
    30 if (file.isFile()) {
    31 //获取文件名
    32 String name = file.getName();
    33 //根据尾部的.截取字符串
    34 String[] split = name.split("\\.");
    35 // System.out.println(Arrays.toString(split));
    36 // Set<String> keySet = hs.keySet();
    37 //判断HashMap里是否有那个类型的文件
    38 if (hs.containsKey(split[split.length - 1])) {
    39 //40 //获取此文件类型的value值
    41 Integer integer = hs.get(split[split.length - 1]);
    42 //在此value值的基础上+1
    43 hs.put(split[split.length - 1], integer + 1);
    44 } else {
    45 //没有
    46 //value值设为以
    47 hs.put(split[split.length - 1], 1);
    48 }
    49 
    50 } else {
    51 //是文件夹,继续执行此方法,直到没有文件夹为止,然后才一层一层的往回返。递归
    52 tj(file);
    53 }
    54 }
    55 }
    56 }
    57 }
    我们在键盘上留下的余温,也将随时代传递到更远的将来~
  • 相关阅读:
    paip.关于动画效果的原则 html js 框架总结
    一个二维阵列蛇的实现
    数据验证validator 与 DWZ
    20140704, 七月微软安全补丁的通知
    oracle9
    oracle8
    oracle7
    oracle6
    Java正常关闭资源的方式
    oracle5
  • 原文地址:https://www.cnblogs.com/0813lichenyu/p/7636161.html
Copyright © 2011-2022 走看看