Java File类

作者: Tim在路上 | 来源:发表于2018-11-01 23:31 被阅读33次

    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();
            }
            
        }
    
    }
    

    相关文章

      网友评论

      本文标题:Java File类

      本文链接:https://www.haomeiwen.com/subject/qwqeaftx.html