java 从入门到精通

java 中的file

2021-05-27  本文已影响0人  Exception_Cui

file 类的静态参数

package FileTest;

import java.io.File;

/**
 * Created by kumamon on 2021/5/27.
 *
 * File类的静态变量
 *
 * File.pathSeparator   路径分割符号      windowns  分号 ;    linux 冒号 :
 * File.separator       文件名称分隔符     windowns 反斜杠\    linux 正斜杠/
 *
 */
public class FileDemo {
    public static void main(String[] args) {
        System.out.println(File.pathSeparator);//  File.pathSeparator   路径分割符号      windowns  分号 ;    linux 冒号 :
        System.out.println(File.separator); //     File.separator       文件名称分隔符     windowns 反斜杠\    linux 正斜杠/

        File file =new File("E:\\Java_demo\\1.txt");
        System.out.println(file.getAbsolutePath());  //绝对路径  完整的路径   E:\Java_demo\demo01\1.txt
    }
}

file中的常用方法

package FileTest;

import java.io.File;
import java.io.IOException;

/**
 * Created by kumamon on 2021/5/27.
 * File
 *
 *
 *
 */
public class FileMethod {
    public static void main(String[] args) throws IOException {

        //show1();

        //fileMathed();


        //fileCreateAndDelete();

        //dirCreateAndDelete();

        //fileList();


        //File file2=new File("demo02");
        //fileListSubFile(file2);

    }

    /**
     * 递归打印多级文件
     * */
    private static void fileListSubFile(File f) {

        /** 结果
         *
         demo02\demo02.iml
         demo02\src\Mian.java
         demo02\src
         * */
        File[] files = f.listFiles();
        for (File file : files) {
           if(file.isDirectory()){
               fileListSubFile(file);
           }
            System.out.println(file);
        }
    }

    /**
     * 可以获取隐藏的文件
     * */
    private static void fileList() {
        File file2=new File("demo02");
        String[] list = file2.list(); //获取demo02 中的文件
        /** 结果
         *
         demo02.iml
         src
         * */
        for (String s : list) {
            System.out.println(s);
        }

        /** 结果
         *
         demo02\demo02.iml
         demo02\src
         * */
        File[] files = file2.listFiles();
        for (File file : files) {
            System.out.println(file);
        }

    }


    /**
     * dir创建和删除
     * 使用mkdirs  可以创建多级
     * delete 不能删除文件夹
     */
    private static void dirCreateAndDelete() {
        File file=new File("\\test");
        File file2=new File("2\\1\\1");

        boolean filemkdir = file.mkdir();  //创建文件。true
        boolean filemkdir2 = file2.mkdir();  //创建文件。false

        System.out.println(filemkdir);
        System.out.println(filemkdir2);

        boolean mkdirs = file2.mkdirs(); //创建多级文件
        System.out.println(mkdirs); //true

        file.delete();  //true
        file2.delete();  //false 不能删除多级文件

    }


    /**
     *file创建和删除
     *
     */
    private static void fileCreateAndDelete() throws IOException {
        File file=new File("2.txt");
        boolean newFile = file.createNewFile();  //创建一个文件  不存在返回true
        boolean newFile2 = file.createNewFile(); //已经创建过,  存在返回false
        System.out.println(newFile); //true
        System.out.println(newFile2); //false

        File fileDir=new File("E:\\Java_demo\\testDir");
        boolean newFileDir = fileDir.createNewFile(); //创建一个文件  构造传递的为 文件夹,其实创建的还是文件
        System.out.println(newFileDir); //true

        //File fileUnkown=new File("E:\\Java_demo\\testDir\\1.txt");
        //boolean newFileUnkown = fileUnkown.createNewFile(); //文件的上级文件夹不存在,抛出异常
        //System.out.println(newFileUnkown); //true

        boolean delete = file.delete();  //删除文件
        System.out.println(delete);

    }


    /**
     *构造方法
     * 可以是文件结尾,也可以是文件夹结尾
     * 可以是存在的文件 也可以是不存在的文件
     *
     */
    private static void show1() {
        File file=new File("E:\\Java_demo\\1.txt");
        System.out.println(file);

        File file1 =new File("E:\\Java_demo\\demo01\\2.txt");
        System.out.println(file1);
    }

    /**
     *file 常用的方法
     *
     *
     */
    public static void fileMethod() {
        File file1=new File("E:\\Java_demo\\1.txt"); //绝对路径构造
        File file2=new File("1.txt");
        File file3=new File("E:\\Java_demo\\demo01");   //文件夹
        File file4=new File("E:\\Java_demo\\demo05\\2.txt");  //不存在

        String absolutePath = file1.getAbsolutePath();  //获取绝对路径
        System.out.println(absolutePath);


        String path = file1.getPath(); //获取构造方法中传递的路径  E:\Java_demo\demo01\1.txt
        String path2 = file2.getPath();  //获取构造方法中传递的路径  1.txt
        System.out.println(path);
        System.out.println(path2);


        String nameDir = file3.getName();//获取文件名称, 文件夹 demo01
        String nameUnknow=file4.getName(); //获取文件名称, 不存在文件 2.txt

        System.out.println(nameDir);
        System.out.println(nameUnknow);

        long length = file1.length();  //获取文件的大小 字节为单位
        System.out.println(length);  //12
        long length2 = file3.length();
        System.out.println(length2);  //获取文件夹的大小

        boolean exists = file1.exists();  //获取文件是否存在
        System.out.println(exists);  //true
        boolean exists4 = file4.exists();
        System.out.println(exists4);  //false

        boolean file1s = file1.isFile();  //判断文件是否为文件
        System.out.println(file1s);  //true

        boolean directory = file1.isDirectory();  //获取文件是否为文件夹
        System.out.println(directory);  //false

    }

}


file中文件查找 FileFilter

package FileTest;

import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;

/**
 * Created by kumamon on 2021/5/27.
 * <p>
 * 搜索E://AAA 里面的java文件
 */
public class FileSearch {
    public static void main(String[] args) {
        File file = new File("E:\\AAA");
        //search01(file);

        search02(file);
    }

    //
    private static void search02(File file1) {
        if(!file1.exists()){
            return;
        }

        /*File[] files = file1.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return pathname.toString().endsWith(".java") || pathname.isDirectory();
            }
        });*/


        /**使用Lambda 表达式*/
        File[] files = file1.listFiles((pathname)->{ return pathname.toString().endsWith(".java") || pathname.isDirectory();});

        for (File file : files) {
            if(file.isDirectory()){
                search02(file);
            }
            System.out.println(file.toString());
        }
    }


    /**
     * 使用String  endwith方法
     *
     * */
    private static void search01(File file1) {
        if(!file1.exists()){
            return;
        }
        for (File f : file1.listFiles()) {
            if(f.isDirectory()){
                search01(f);
            }else{
                if(f.toString().endsWith(".java")){
                    System.out.println(f);
                }
            }

        }

    }


}

上一篇 下一篇

猜你喜欢

热点阅读