Java File操作基础

File类(File类的概述和构造方法)

  • A:File类的概述

  • File更应该叫做一个路径

  • 文件路径或者文件夹路径

  • 路径分为绝对路径和相对路径

  • 绝对路径是一个固定的路径,从盘符开始

  • 相对路径相对于某个位置,在eclipse下是指当前项目下,在dos下

  • 查看API指的是当前路径

  • 文件和目录路径名的抽象表示形式

  • B:构造方法

  • File(String pathname):根据一个路径得到File对象

  • File(String parent, String child):根据一个目录和一个子文件/目录得到File对象

  • File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象

  • C:案例演示

public static void main(String[] args) {
        //demo1();
        //demo2();
        File parent = new File("F:\\课堂\\day19\\video");
        String child = "001.avi";
        File file = new File(parent, child);
        System.out.println(file.exists());
        System.out.println(parent.exists());
    }

    public static void demo2() {
        String parent = "F"+ File.separator+"课堂\\day19\\video";
        String child = "00内容.avi";
        File file = new File(parent,child);
        System.out.println(file.exists());
    }

    public static void demo1() {
        File file = new File("F:\\课堂\\day19\\video\\001.avi");
        System.out.println(file.exists());

        File file2 = new File("xxx.txt");
        System.out.println(file2.exists());

        File file3 = new File("yyy.txt");
        System.out.println(file3.exists());
    }

}
  • File类的构造方法

File类(File类的创建功能)

  • A:创建功能

  • public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了

  • public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了

  • public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来

  • B:案例演示

  • File类的创建功能

* public static void main(String[] args) throws IOException {
        //demo1();
        File dir1 = new File("aaa");
        System.out.println(dir1.mkdir());

        File dir2 = new File("bbb.txt");                //这样写是可以的,文件夹也是可以有后缀的
        System.out.println(dir2.mkdir());

        File dir3 = new File("ccc"+File.separator+"ddd");
        System.out.println(dir3.mkdirs());              //创建多级目录
    }

    public static void demo1() throws IOException {
        File file = new File("yyy.txt");
        System.out.println(file.createNewFile());           //如果没有就创建,返回true

        File file2 = new File("zzz");
        System.out.println(file2.createNewFile());
    }

}
  • 注意事项:

  • 如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。

File类(File类的重命名和删除功能)

  • A:重命名和删除功能

  • public boolean renameTo(File dest):把文件重命名为指定的文件路径

  • public boolean delete():删除文件或者文件夹

  • B:重命名注意事项

  • 如果路径名相同,就是改名。

  • 如果路径名不同,就是改名并剪切。

  • C:删除注意事项:

  • Java中的删除不走回收站。

  • 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹

* public static void main(String[] args) {
        //demo1();
        File file1 = new File("yyy.txt");
        System.out.println(file1.delete());

        File file2 = new File("aaa");
        System.out.println(file2.delete());

        File file3 = new File("ccc");                   //如果删除一个文件夹,那么文件夹必须是空的
        System.out.println(file3.delete());
    }

    public static void demo1() {
        File file1 = new File("ooo.txt");
        File file2 = new File("D:\\xxx.txt");
        System.out.println(file1.renameTo(file2));
    }

}

File类(File类的判断功能)

  • A:判断功能

  • public boolean isDirectory():判断是否是目录

  • public boolean isFile():判断是否是文件

  • public boolean exists():判断是否存在

  • public boolean canRead():判断是否可读

  • public boolean canWrite():判断是否可写

  • public boolean isHidden():判断是否隐藏

  • B:案例演示

public static void main(String[] args) {
        //demo1();
        File file = new File("zzz");
        file.setReadable(false);
        System.out.println(file.canRead());             //windows系统认为所有的文件都是可读的
        file.setWritable(true);
        System.out.println(file.canWrite());            //windows系统可以设置为不可写

        File file2 = new File("aaa.txt");
        System.out.println(file2.isHidden());           //判断是否是隐藏文件
        System.out.println(file.isHidden());
    }

    public static void demo1() {
        File dir1 = new File("ccc");
        System.out.println(dir1.isDirectory());         //判断是否是文件夹

        File dir2 = new File("zzz");
        System.out.println(dir2.isDirectory());

        System.out.println(dir1.isFile());              //判断是否是文件
        System.out.println(dir2.isFile());
    }
  • File类的判断功能

File类(File类的获取功能)

  • A:获取功能

  • public String getAbsolutePath():获取绝对路径

  • public String getPath():获取路径

  • public String getName():获取名称

  • public long length():获取长度。字节数

  • public long lastModified():获取最后一次的修改时间,毫秒值

  • public String[] list():获取指定目录下的所有文件或者文件夹的名称数组

  • public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组

  • B:案例演示

public static void main(String[] args) {
        //demo1();
        File dir = new File("F:/双元课堂/day19/video");
        String[] arr = dir.list();                      //仅为了获取文件名

        for (String string : arr) {
            System.out.println(string);
        }

        File[] subFiles = dir.listFiles();

        for (File file : subFiles) {                    //获取文件对象
            System.out.println(file);
        }
    }

    public static void demo1() {
        File file1 = new File("ccc.txt");
        File file2 = new File("D:\\双元课堂\\day19\\ccc.txt");
        //System.out.println(file1.getAbsolutePath());          //获取绝对路径
        //System.out.println(file2.getAbsolutePath());

        //System.out.println(file1.getPath());                  //获取构造方法中传入路径
        //System.out.println(file2.getPath());

//      System.out.println(file1.getName());                    //获取文件或者文件的名字
//      System.out.println(file2.getName());
//      
//      System.out.println(file1.length());

        Date d = new Date(file1.lastModified());                //文件的最后修改时间
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        System.out.println(sdf.format(d));
    }
  • File类的获取功能

File类(输出指定目录下指定后缀的文件名)

  • A:案例演示

  • 需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称

File类(文件名称过滤器的概述及使用)

  • A:文件名称过滤器的概述

  • public String[] list(FilenameFilter filter)

  • public File[] listFiles(FileFilter filter)

  • B:文件名称过滤器的使用

  • 需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称

  • C:源码分析

  • 带文件名称过滤器的list()方法的源码

public class Test3 {

    /**
     * @param args
     * * A:案例演示
     * 需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
     */
    public static void main(String[] args) {
        File dir = new File("E:\\");

//      String[] arr = dir.list();                  //获取e盘下所有的文件或文件夹
//      for (String string : arr) {
//          if(string.endsWith(".jpg")) {
//              System.out.println(string);
//          }
//      }

        /*File[] subFiles = dir.listFiles();            //获取e盘下所有的文件或文件夹对象

        for (File subFile : subFiles) {
            if(subFile.isFile() && subFile.getName().endsWith(".jpg")) {
                System.out.println(subFile);
            }
        }*/

        String[] arr = dir.list(new FilenameFilter() {

            @Override
            public boolean accept(File dir, String name) {
                //System.out.println(dir);
                //System.out.println(name);
                File file = new File(dir, name);
                return file.isFile() && file.getName().endsWith(".jpg");
            }
        });

        for (String string : arr) {
            System.out.println(string);
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值