zoukankan      html  css  js  c++  java
  • Java:File类

    File类的概述

    • 文件和目录路径名的抽象表示形式
    • 表示的文件/目录不一定存在

    构造方法

    • File(File parent, String child)
      从父抽象路径名和子路径名字符串创建新的 File实例
    • File(String pathname)
      通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例
    • File(String parent, String child)
      从父路径名字符串和子路径名字符串创建新的 File实例
    • File(URI uri)
      通过将给定的 file: URI转换为抽象路径名来创建新的 File实例
    File file = new File("D:/file/newfile");
    File file = new File("D:/file","newfile");
    File fileParent = new File("D:/file");  File file = new File(fileParent,"newfile");
    //以上三种定义的file指向同样的路径
    

    私以为这个类是英语影响Java学习速度的典型代表

    创建
    public boolean createNewFile()//创建文件 文件已存在就不会被创建 父级目录必须存在
    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 getName()//返回文件(目录)名
    public long length()//返回文件字节数
    public long lastModified()//返回此抽象路径名表示的文件上次修改的时间(毫秒值)  配合new Date()使用
    
    public String[] list()//返回目录下的文件和目录的名称数组  若该File指向一个文件则返回null
    public File[] listFiles()//返回目录下的文件和目录的File数组  若该File指向一个文件则返回null
    
    
    public String[] list(FilenameFilter filter)
    public File[] listFiles(FilenameFilter filter)
    
    
    FilenameFilter接口      用于筛选获取目录下的一部分文件
    
    //示例
    
    //FilenameFilter
    String [] files = file.list(new FilenameFilter(){
        @override
        public boolean accpet(File dir , String name){//dir为调用者file,name为文件名
            return name.endsWith(.txt);
            //return new File(dir,name).isFile && name.endsWith(.txt);确保是文件
        }
    });//返回file目录下的TXT文件名称数组
    
    
    private File [] getFiles(File file){
            File [] files = null;
            if(file.isFile())return files;
            if(file.isDirectory()){
                files = file.listFiles((File dir, String name)->new File(dir,name).isDirectory()&&name.endsWith(".jpg"));
            }
            return files;
        }//返回目录file下以.jpg为结尾的文件夹File数组
    
    //FileFilter    仅listFiles可用
    
    private File [] gotFiles(File file){
            File [] files = null;
            if(file.isFile())return files;
            if(file.isDirectory()){
                files = file.listFiles((pathname)->pathname.isDirectory()&&pathname.getName().endsWith(".jpg"));//pathname为指向file目录下文件的File类型变量
            }
            return files;
        }//返回目录file下以.jpg为结尾的文件夹File数组

    简单应用:递归删除文件/目录下的所有文件

    import java.io.File;
    
    public class Main {
    
        private static void delete(File file){
            File [] files;
            if(file.isFile()){
                if(file.delete())
                    System.out.println(file.getAbsolutePath());
            }else if(file.isDirectory()){
                files = file.listFiles();
                for(File f : files){
                    delete(f);
                }
                if(file.delete())
                    System.out.println(file.getAbsolutePath());
            }
        }
    
        public static void main(String[] args) {
                delete(new File("D:\tem"));//文件/目录名
        }
    }

    2018/8/4

  • 相关阅读:
    CDN实现原理
    openstack测试集群扩容配置
    ELK5.2.2自动化部署脚本
    Python多线程
    Python反射
    OpenStack快照分析:(三)从磁盘启动云主机离线(在线)快照分析
    OpenStack快照分析:(二)从镜像启动的云主机离在线快照分析
    OpenStack快照分析:(一)从镜像启动的云主机离线快照分析
    Python元编程
    Python源码阅读:对象
  • 原文地址:https://www.cnblogs.com/kafm/p/12721851.html
Copyright © 2011-2022 走看看