File

当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作。

当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作。

因此我们把这种输入和输出动作称为IO操作。

通过构造方法创建File对象:

        //3种构造方法
        File file=new File("D:\io1227\b.txt");
        File file=new File("src");
        System.out.println(file);
        
        File file=new File("D:\io1227","a.txt");
        System.out.println(file);
        
        //File(String pathname, String child)
        //父路径固定,子路径可替换    更灵活
        File file=new File(new File("D:\io1228"),"a.txt");
        System.out.println(file);            
        // 与系统有关的路径分隔符
        //win  ;
        //linux  :
        System.out.println(File.pathSeparator);
        // 与系统有关的默认名称分隔符
        //win    
        //linux    /
        System.out.println(File.separator);

File类的获取

        File file=new File("D:\io1227\a.txt");
        //获取绝对路径
        System.out.println(file.getAbsolutePath());
        //获取路径
        System.out.println(file.getPath());
        //获取文件名
        System.out.println(file.getName());
        //获取文件大小
        System.out.println(file.length());

文件和文件夹的创建删除等

public static void method01() throws IOException{
        File file=new File("D:\io1227\b.7z");
        //创建文件或文件夹
        boolean flag=file.createNewFile();
        System.out.println(flag);
    }
    public static void method02(){
        File file=new File("D:\io1227\b");
        //删除文件
        boolean flag=file.delete();
        System.out.println(flag);
        
    }
    public static void method03(){
        File file=new File("D:\io1227\a.txt");
        //判断该路径表示的文件或目录是否真实存在
        boolean flag=file.exists();
        System.out.println(flag);
        //判断该路径是否是文件夹
        boolean flag1=file.isDirectory();
        System.out.println(flag1);
        //判断该路径是否是文件
        boolean flag2=file.isFile();
        System.out.println(flag2);
    }
    public static void method04(){
        //File file=new File("D:\io1227\b.png");
        File file=new File("D:\io1227\a\b\c\d\e");
        //创建文件夹
        boolean flag=file.mkdirs();
        System.out.println(flag);    
    }
    //获取目录中的文件和文件夹
    public static void method05(){
        File file=new File("D:\io1227");
        String[] filenames=file.list();
        for(String f: filenames){
            System.out.println(f);
        }
    } 
    //获取目录中的文件和文件夹
    public static void method06(){
        File file=new File("D:\io1227");
        //File[] filenames=file.listFiles();
        //获取当前路径下的.txt文件
        File[] filenames=file.listFiles(new MyFileter());
        for(File f: filenames){
            System.out.println(f.getName()+"..."+f.length());
        }
    }

文件过滤器

MyFileter 
public class MyFileter implements FileFilter{

    public boolean accept(File pathname) {
        //判断是否是txt结尾
        return pathname.getName().toLowerCase().endsWith(".txt");
    }

}
public static void main(String[] args) {
        //找到该路径下的所有txt文件
        File file=new File("D:\io1227");
        File[] files=file.listFiles(new MyFileter());
        for(File f:files){
            System.out.println(f);
        }
    }

注意:在获取指定目录下的文件或者文件夹时必须满足下面两个条件

1,指定的目录必须是存在的,

2,指定的必须是目录。否则容易引发返回数组为null,出现NullPointerException

 

原文地址:https://www.cnblogs.com/longmingyeyu/p/12761885.html