0
点赞
收藏
分享

微信扫一扫

将本地项目上传到Github仓库或Gitee仓库

眸晓 2023-05-22 阅读 79

1.概述

  • File对象就表示一个路径,可以是文件的路径、也可以是文件夹的路径
  • 这个路径可以是存在的,也允许是不存在的

2.常见的构造方法

  • public File(String pathname):根据文件路径创建文件对象
  • public File(string parent,string child):根据父路径名字符串和子路径名字符串创建文件对象
  • public File(Fileparent,string child):根据父路径对应文件对象和子路径名字符串创建文件对象

案例1:

  //根据字符串表示的路径,创建对象
        String s = "C:\\Users\\GZL\\Desktop\\11.txt";
        File f1 = new File(s);
        System.out.println(f1);//C:\Users\GZL\Desktop\11.txt

        //父级路径和子级路径进行拼接
        String parent = "C:\\Users\\GZL\\Desktop";
        String child = "11.txt";
        File f2 = new File(parent,child);
        System.out.println(f2);//C:\Users\GZL\Desktop\11.txt

        //3.
        File parent2 = new File("C:\\Users\\GZL\\Desktop");
        File f4 =new File(parent2,child);
        System.out.println(f4);//C:\Users\GZL\Desktop\11.txt

3.常见的成员方法

1. (判断,获取)

  • public boolean isDirectory():判断此路径名表示的File是否为文件夹
  • public boolean isFile():判断此路径名表示的File是否为文件
  • public boolean exists():判断此路径名表示的File是否存在
  • public long length():返回文件的大小(字节数量)

无法获取文件夹大小。

  • public string getAbsolutePath():返回文件的绝对路径
  • public string getPath():返回定义文件时使用的路径
  • public String getName():返回文件的名称,带后缀
  • public long lastModified():返回文件的最后修改时间(时间毫秒值)

案例2:

        File f1 =new File("C:\\Users\\GZL\\Desktop\\11.txt");
        System.out.println(f1.isDirectory());//false
        System.out.println(f1.isFile());//true
        System.out.println(f1.exists());//true

        System.out.println(f1.length());//39

        System.out.println(f1.getAbsoluteFile());//C:\Users\GZL\Desktop\11.txt

        File f2 = new File("day30\\a.txt");
        System.out.println(f2.getAbsoluteFile());//G:\JavaReview\farmerandlord\day30\a.txt

        System.out.println(f2.getPath());//day30\a.txt

        System.out.println(f2.getName());//a.txt

        long time = f1.lastModified();
        System.out.println(time);//1684657779127
        Date date = new Date(time);
        System.out.println(date);//Sun May 21 16:29:39 CST 2023

        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
        System.out.println(sdf1.format(date));//2023年05月21日16时29分39秒

2.(创建,删除) 

  • public boolean createNewFile():创建一个新的空的文件
  • public boolean mkdir():创建单级文件夹
  • public boolean mkdirs():创建多级文件夹
  • public boolean delete():删除文件、空文件夹

delete方法默认只能删除文件和空文件夹,delete方法直接删除不走回收站。

案例3:

        //创建文件
        File f1 =new File("E:\\aaa\\c.txt");
        boolean b = f1.createNewFile();
        System.out.println(b);
        //创建单级文件夹
        File f2 = new File("E:\\aaa\\bbb");
        System.out.println(f2.mkdir());
        //创建多级文件夹
        File f3 = new File("E:\\aaa\\ccc\\ddd");
        System.out.println(f3.mkdirs());
        //删除文件
        System.out.println(f1.delete());
        //删除文件夹
        System.out.println(f2.delete());

 3.获取并遍历

  • public File[] listFiles():获取当前该路径下所有内容

注意:

1.当调用者File表示的路径不存在时,返回null。

2.当调用者File表示的路径是文件时,返回null。

3.当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组。

4.当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回。

5.当调用者File表示的路径是需要权限才能访问的文件夹时,返回null。

案例4:


        File f1 = new File("E:\\aaa");
        File[] files = f1.listFiles();
        for (File file : files) {
            System.out.println(file);
        } 
  •  public static File[] listRoots():列出可用的文件系统根
  • public string[ ] list():获取当前该路径下所有内容
  • public string[ ] list(FilenameFilter filter):利用文件名过滤器获取当前该路径下所有内容
  • public File[] listFiles(FileFilter filter):利用文件名过滤器获取当前该路径下所有内容
  • public File[] listFiles(FilenameFilter filter):利用文件名过滤器获取当前该路径下所有内容

案例5:

        //获取系统所有盘符
        File[] arr = File.listRoots();
        System.out.println(Arrays.toString(arr));
        //获取当前路径下所有内容名字
        File f1 = new File("E:\\aaa");
        String[] arr2 = f1.list();
        for (String s : arr2) {
            System.out.println(s);
        }
        //文件过滤器
        String[] arr3 = f1.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                File src = new File(dir,name);
                return src.isFile() && name.endsWith(".txt");
            }
        });

        System.out.println(Arrays.toString(arr3));//[abc.txt, acb.txt]
        //
        File[] arr4 = f1.listFiles();
        for (File file : arr4) {
            if (file.isFile() && file.getName().endsWith(".txt")){
                System.out.println(file);
            }
        }
        //文件过滤器
        File[] arr5 = f1.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return pathname.isFile() && pathname.getName().endsWith(".txt");
            }
        });
        System.out.println(Arrays.toString(arr5));
        //父级路径加子级路径过滤
        File[] arr6 = f1.listFiles(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                File src = new File(dir, name);
                return src.isFile() && src.getName().endsWith(".txt");
            }
        });
        System.out.println(Arrays.toString(arr6));
举报

相关推荐

0 条评论