File类

 

文件(File类):这是一个代表文件或者文件夹(目录)的类

import java.io.File;
import java.io.IOException;
​
public class FileDemo {
    public static void main(String[] args) throws IOException {
        //创建文件类的对象
        //java不会对路径名进行真实的检测
        //仅仅只是根据路径名创建一个对象
        File file = new File("E:\\a.txt");
        //创建一个新文件---空文件
        //如果路径名指向的文件已经存在,就不再创建,结果值为false
        boolean b = file.createNewFile(); //true
        System.out.println(b);
        
        File file1 = new File("E:\\a\\b\\c");
        //创建目录
        //可以创建多级目录
        boolean b1=file1.mkdirs();
        System.out.println(b1);
        
        
        //删除----文件有无内容都可以
        //彻底删除(不在回收站中)
        boolean b2=file.delete();
        System.out.println(b2);
        
        //delete删除目录---只能删除空目录
        boolean b3=file.delete();
        System.out.println(b3);
        
        
    }
}

 

import java.io.File;
import java.io.IOException;
​
public class FileDemo {
    public static void main(String[] args) throws IOException {
​
        File file = new File("D:\\");
​
        // 返回当前目录下的
        File[] fs = file.listFiles();
        for (File f : fs) {
            System.out.println(f);
        }
​
        // 判断是否是目录
        System.out.println(file.isDirectory());
        // 判断是否是文件
        System.out.println(file.isFile());
        
        
        
    }
}

 

案例:删除文件(先把目录下的所有信息展示出来,如果是文件直接删除,如果是目录接着展示除目录下的所有信息,重复上述操作)

import java.io.File;
import java.io.IOException;
​
public class FileDemo {
    public static void main(String[] args) throws IOException {
​
        File file = new File("D:\\a");
        //调用方法进行删除
        m(file);
    }
    
    //表示去删除文件的方法
    public static void m(File file){
        //判断是否是目录
        if(file.isDirectory()){
            //把目录下的信息展示
            File[] fs = file.listFiles();
            //遍历文件数组里的内容
            for(File f : fs){
                //调用本方法
                m(f);
            }
        }
        //删除空目录
        file.delete();
    }
}
import java.io.File;
​
public class FileDemo {
    public static void main(String[] args) {
​
        //创建对象---指定路径
        File file = new File("D:\\");
        
        //判断目录或者文件是否存在
//      System.out.println(file.exists());
        
        //展示总空间
        System.out.println(file.getTotalSpace());
        //展示已用空间
        System.out.println(file.getUsableSpace());
        //展示未使用空间
        System.out.println(file.getFreeSpace());
    
        //创建对象---指定路径
        File file = new File("D:\\1.txt");
    
        //获取的是文件或者目录的名称
        System.out.println(file.getName());
        
        //返回的是当前所在目录
        System.out.println(file.getParent());
        
        //修改文件最后修改时间
        file.setLastModified(4656564L);
        
    }
}

 

案例:统计工作空间有多少个.java文件和.class文件

import java.io.File;
​
/*
 * 统计工作空间有多少个.java文件和.class文件
 */
public class FileDemo {
​
    // 统计数
    static int countJava;
    static int countClass;
​
    public static void main(String[] args) {
        File file = new File("");
        countFile(file);
        System.out.println(".java文件个数:"+countJava);
        System.out.println(".class文件个数:"+countClass);
    }
​
    // 统计.java和.class文件的个数
    public static void countFile(File file) {
        // 判断是否是目录
        if (file.isDirectory()) {
            // 把目录下的信息展示
            File[] fs = file.listFiles();
            // 遍历文件数组里的内容
            for (File f : fs) {
                // 调用本方法
                countFile(f);
            }
        }else if(file.getName().endsWith(".java")){ //代码执行到这,已经是文件
            countJava++;
        }else if(file.getName().endsWith(".class")){
            countClass++;
        }
    }
}
 

 

过滤:

import java.io.File;
import java.io.FileFilter;
​
public class FileDemo {
​
    public static void main(String[] args) {
        
        File file = new File("");
        
        //过滤到当前含有数字的文件或文件夹
        File[] fs = file.listFiles(new FileFilter() {
            //过滤规则
            @Override
            public boolean accept(File pathname) {
            
                return pathname.getName().matches(".*\\d+.*");
            }
        });
        
        //Lambada表法式
//      File[] fs = file.listFiles(str->str.getName().matches(".*\\d.*"));
//遍历数组
        for(File f:fs){
            System.out.println(f);
        }
        
    }
}

 

重命名,剪切,只读

import java.io.File;
import java.io.FileFilter;
​
public class FileDemo {
​
​
    public static void main(String[] args) {
        
        File file = new File("D:\\1.txt");
        //重命名
        file.renameTo(new File("D:\\2.txt"));
        //如果前后路径不一致---剪切
        file.renameTo(new File("D:\\JAVA\\2.txt"));
        //可以同时改名和剪切
        file.renameTo(new File("D:\\JAVA\\3.txt"));
​
        
        //设置文件只读
        file.setReadOnly();
        
    }
}

 

 

posted @ 2020-08-19 11:07  minnersun  阅读(181)  评论(0)    收藏  举报