Java File类

File类

  • 1.构造方法

构造方法主要是用来封装文件名和目录名,不会创建文件和文件夹

File file = new File("D:\\demo\\com");
File file = new File("D:\\a.txt");
File file = new File(new File("D:\\demo"),"a.txt");
  • 2.创建方法
boolean mkdir();
  //创建单一的文件夹,只能创建一个文件夹,多个未创建则不会创建成功,且不能创建文件,但是不会报错
  file.mkdir();
boolean mkdirs();
  //创建多个文件夹,同样路径封装里不能加入文件名,否则创建出文件名文件夹
  file.mkdirs();
boolean createNewFile();
  //创造文件的方法
  file.createNewFile();

创建文件一般思路:

  File file = new File("D:\\demo\\com");\\封装文件夹
  file.mkdirs();\\创建文件夹目录
  File file2 = new File(file,"a.txt");\\增加文件路径
  file2.createNewFile();  \\创建文件
  • 3.删除方法
boolean delete();
  //每次只能删除一个文件或文件夹,必须从最里层开始删除,要想删除所有必须定义封装所有文件或文件夹路径
  file.delete();
  • 4.重命名方法
boolean renameTo(File file)
  //里面必须封装为文件路径与实际一致,否则将变成新建文件
  file.renameTo(new File("D:\\demo\\com\\a.txt"))
  File file3 = new File("D:\\demo\\com");
  file2.renameTo(new File(file3,"c.txt"));
  • 5.判断功能
boolean isDirectory()
  //判断是否是一个目录文件
boolean isFile();
  //判断是否是一个文件
boolean exists();
  //判断文件是否存在
boolean canRead();
  //判断文件是否可读
boolean isHidden()
  //判断文件是否隐藏
  • 6.获取功能
String getName()
  //获取最后一个目录名,或文件名
String getAbsolutionPath()
  //获取绝对路径名,返回为字符串
File   getAbsolutionFile()
  //获得绝对路径名,返回为文件
long   length();
  //获取文件内容的长度
String getParent();
  //获得父目录

6.高级获取

String[] list();
  //获取的是父目录下的所有子文件名,仅仅一层,输出仅仅为文件的文件名
   String[] filename = new String[10];//创建字符串数组
   filename = file3.list();
   for (String string : filename) {
     System.out.println(string);
   }

File[] listFiles();
  //返回文件数组,但是file的toString()重写,输出为文件的根路径
   File[] filename = new File[10];
   filename = file3.listFiles();
   for (File string : filename) {
     System.out.println(string);
   }

1.判断路径下是否有.png类型的文件,并输出文件名

  • 1.封装D:盘目录
  • 2.获得该文件下的File数组
  • 3.遍历该文件下所有file
  • 4.判断是否是文件
  • 5.判断是否是以。jpg结尾
  • 6.输出名称
public class FileDemo2 {
     public static void main(String[] args) {
        //封装路径
         File file = new File("D:\\");
         //创建File数组
         File[] fileArray = file.listFiles();
         //遍历
         for (File f : fileArray) {
             //判断是否是文件
            if(f.isFile()){
                //判断文件是否是以.jpg结尾的
                if(f.getName().endsWith(".png")){
                    System.out.println(f.getName());
                }
            }
        }
         
    }
}

2.获取的时候就满足条件 FilenameFilter用于过滤器文件名

boolean accept(File dir,String name)

    
        //封装路径
        File file = new File("D:\\");
        //获得满足条件的名称
        String[] strArray = file.list(new FilenameFilter() {
            
            @Override
            public boolean accept(File dir, String name) {

                return new File(dir,name).isFile()&&name.endsWith(".png");
            }
        });
        
        for (String string : strArray) {
            System.out.println(string);
        }

3.递归遍历目录下指定文件名

把视频名全部重命名 把E:\java目录下所有以java结尾的绝对路径输出控制台

  • A:封装路径
  • B:获取该文件下所有文件或者文件夹的File数组
  • C:遍历File数组得到每一个File对象
  • D:判断该File对象是否为文件夹
  • 是:递归调用
  • 不是:判断是否以java结尾
  • 是:输出该文件的绝对路径
  • 否:不搭理
public class FileDemo4 {
    
    public static void main(String[] args) {
         
        File srcFolder = new File("D:\\");
        
        getAllClassFilesPath(srcFolder);
        
    }

    private static void getAllClassFilesPath(File srcFolder) {
        try {
            
            //获得当前目录下的所有文件夹
            File[] files = srcFolder.listFiles();
            //遍历files对象
            for (File file : files) {
                //判断当前是否为文件夹
                if(file.isDirectory()){
                    getAllClassFilesPath(file);
                }else{
                    if(file.getName().endsWith(".class")){
                        System.out.println(file.getAbsolutePath());
                    }
                }
            }
        } catch (Exception e) {
            e.getMessage();
        }
        
    }

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java 字节流

    此抽象类是表示输出字节流的所有类的超类。输出流接受输出字节并将这些字节发送到某个接收器

    黑白格
  • docker镜像的制作

    2.通过 Debootstrap 构建 Ubuntu 16.04 LTS 的 rootfs

    黑白格
  • python中的垃圾回收机制

    Python GC主要使用引用计数(reference counting)来跟踪和回收垃圾。在引用计数的基础上,通过“标记-清除”(mark and sweep...

    黑白格
  • 第53节:Java当中的IO流(上)

    在Java中,字符串string可以用来操作文本数据内容,字符串缓冲区是什么呢?其实就是个容器,也是用来存储很多的数据类型的字符串,基本数据类型包装类的出现可以...

    达达前端
  • [Java IO]01_File类和RandomAccessFile类

    File类 File类是java.io包中唯一对文件本身进行操作的类。它可以进行创建、删除文件等操作。 File类常用操作 (1)创建文件 可以使用 creat...

    静默虚空
  • Java 修改文件名

    IT小马哥
  • 白话http队头阻塞

    http协议的1.0版本与1.1版本最大的一个区别就是http1.1增加了长连接功能,那什么是http的长连接呢?

    挥刀北上
  • Android 使用fast-verification实现验证码填写功能的实例代码

    验证码的验证环节现在是移动APP中不可缺少的一部分,直接使用EditText组件虽然方便但缺少了一些美感,使用fast-verification,让实现验证码变...

    砸漏
  • IntelliJ IDEA使用(一)基本设置与类、方法模板设置

    其实之前一直开发都是在使用的是Eclipse,但是最近在做Maven项目的时候要用IntelliJ IDEA,据说这个idea功能非常的强大,最近在使用的时候发...

    用户1195962
  • pycharm配置默认代码和注释模板

    有人问,在pycharm新建python文件时,文件开头的注释每次都要重复写,能不能配置成模板?其实pycharm本身自带此功能

    流柯

扫码关注云+社区

领取腾讯云代金券