Java文件File类

File类

File类是 java.io 包下代表与平台无关的文件和目录。
不管是文件,还是目录都可以使用File来操作。
可以用来新建,重命名,删除文件和目录。
但是不能访问文件内容本身。访问文件本身需要输入/输出流。

public class File
    implements Serializable, Comparable<File>
{
}

文件和目录访问

文件名相关方法

  • getName(): 返回文件名或路径名
  • getPath(): 返回路径
  • getAbsoluteFile(): 绝对路径
  • getAbsolutePath(): 绝对路径名
  • getParent(): 父目录名
  • renameTo(): 重命名

文件检测相关方法

  • exists(): 文件或目录是否存在
  • canWrite(): 文件或目录是否可写
  • canRead(): 是否可读
  • isFile(): 是否为文件
  • isDirectory(): 是否目录
  • isAbsolute(): 是否绝对路径

获取文件信息

  • lastModified(): 最后修改时间
  • length(): 文件内容长度

文件操作

  • createNewFile(): 文件不存在时创建
  • delete():删除文件或路径
  • createTempFile(): 创建临时空文件, 静态方法, 使用给定前缀,系统生成随机数,给定后缀作为文件名, 可以指定目录
  • deleteOnExit(): 注册一个删除钩子,JAVA虚拟机退出时,删除文件或目录

目录操作

  • mkdir(): 创建目录
  • list():返回所有子文件和路径, 返回 String[]
  • listFiles():返回所有子文件和路径, 返回 File数组
  • listRoots(): 返回根目录列表, 静态方法

使用样例:

        File file = new File(".");
        System.out.println(file.getName());
        System.out.println(file.getParent());
        System.out.println(file.getAbsoluteFile());
        System.out.println(file.getAbsoluteFile().getParent());

        File tmpFile = File.createTempFile("abc", ".txt", file);
        System.out.println(tmpFile.exists());
        
        String[] fileList = file.list();
        for (String fileName : fileList) {
            System.out.println(fileName);
        }
        File[] roots = File.listRoots();
        for(File rootFIle : roots){
            System.out.println(rootFIle);
        }
//Output
.
null
/Users/testCode/.
/Users/testCode
true

文件过滤器

File类的 list()方法,可以接收 FilenameFilter 参数, 可以只列出符合条件的文件。是一个函数式接口。可以使用Lambda表达式。

@FunctionalInterface
public interface FilenameFilter {
    boolean accept(File dir, String name);
}

accept 方法依次对所有文件迭代, 返回true,则列出来

        File file = new File(".");
        //文件以 .java 结尾,或者是个目录
        String[]  nameList = file.list(((dir, name) -> name.endsWith(".java") || new File(name).isDirectory()));
        for (String fileName : nameList) {
            System.out.println(fileName);
        }

地址: https://blog.csdn.net/yonggang7/article/details/86772936

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值