JavaFile类知识总结

一、File类的定义:
File类是Java.io包下代表与平台无关的文件和目录。也就是说不管是文件还是目录都是使用File来操作的,File能新建、删除、重命名文件和目录,但是File不能访问文件内容本身。

File类有三种构造方法,对应封装文件或目录的的三种方式。

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

绝对路径和相对路径:
  • 绝对路径:
    • 在UNIX/Linux/BSD等系统上,如果路径名的开头是一条斜线(/),则表示该文件对象对应一个绝对路径。
    • 在Windows等系统上,如果路径的开头名是盘符,则表示这是个绝对路径。(Windows路径分隔符使用的是反斜线(\),Java中反斜线代表转义字符,因此应使用(\\)来分隔路径。也可使用(/)作为路径分隔符。)
  • 相对路径:
    • 默认情况下,系统总是根据用户的工作路径来解释相对路径。“相对”指相对于当前的工作或工程。比如: 在Idea中创建文件时,相对路径指的是相对于该工程根目录而言。
      在这里插入图片描述
二、File类常用方法:
方法功能
public boolean createNewFile()创建一个新的文件。如果创建成功,返回true。如果已经存在这样的文件,不重新创建,返回false。
public boolean mkdir()创建文件夹。如果存在这样的文件夹,就不创建了 注意这个方法只能创建单层目录 如果创建多层目录,得一层一层创建。
public boolean mkdirs创建文件夹。如果父文件夹不存在,会帮你创建出来 可以创建多层目录 当然也可以创建单层目录。
public boolean delete()删除文件或者文件夹。删除文件夹时 这个文件夹是空文件夹 如果这个文件夹里面有文件,则不能删除。
public boolean renameTo(File dest)把文件重命名为指定的文件路径。如果路径名相同,就是改名。如果路径名不同,就是改名并剪切。
public boolean isDirectory()判断是否是目录,而不是文件。
public boolean isFile()判断是否是文件,而不是目录。
public boolean exists()判断文件或目录是否存在。
public boolean canRead()判断是否可读。
public boolean canWrite()判断是否可写。
public boolean isHidden()判断是否隐藏。
public String getAbsolutePath()获取绝对路径。
public String getPath()获取相对路径。
public String getParent()返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
public File getParentFile()返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。
public long getTotalSpace()返回此抽象路径名指定的分区大小,返回总容量 单位字节。
public long getFreeSpace()返回此抽象路径名指定的分区中未分配的字节数,返回剩余容量 单位字节。
public String getName()获取名称。如果是路径,返回最后一级子路径名。
public long length()获取文件内容长度,字节数。
public long lastModified()获取最后一次的修改时间,返回毫秒值。
public String[] list()获取指定目录下的所有文件或者文件夹的名称数组。
public File[] listFiles()获取指定目录下的所有文件或者文件夹的File数组 。
三、文件过滤器:查找特定格式的文件。
File类的list()文件中可以接收一个FilenameFilter参数,通过参数可以只列出符合条件的文件或目录。

public String[] list(FilenameFilter filter)
public File[] listFiles(FilenameFilter filter)

FilenameFilter接口里包含了accept(File dir,String name)方法。该方法依次对指定的File所有子目录或者文件迭代,如果方法返回ture,那么list()方法会列出只符合条件的子目录或文件。

FilenameFilter 文件名过滤器  dir 当前文件对应的父文件  name 当前文件的名称
            //方法一:public String[] list 接收
        File file = new File("E:\\素材\\图片库");
        String[] list = file.list((dir, name) -> name.endsWith(".jpg"));
        for(String str: list){
            System.out.println(str);
        }
            //方法二:public File[] listFiles 接收
                 File file = new File("E:\\文档Demo");
        File[] files = file.listFiles(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                File file1 = new File(dir,name);  //封装指定文件为对象
              //  System.out.println(file1);  打印文件的绝对路径
                boolean flag = file.isFile()&&file.getName().endsWith(".txt");  //后缀名为.txt
                return new File(dir,name).isFile() && name.endsWith(".txt");
            }
        });
        for (File file1:files){
            System.out.println(file1.getName());
        }
        
			//方法二升级版(直接在方法中给返回值):
		File file = new File("E:\\素材\\图片库");
         File[] files = file.listFiles(new FilenameFilter() {
             @Override
             public boolean accept(File dir, String name) {
                 return new File(dir,name).isFile()&&name.endsWith(".jpg");
             }

         });
            for(File file1:files){
                System.out.println(file1.getName());
            }
Java中File类用法诸多,且与IO密切相关,具体应用还应该以实际情况为准。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值