zoukankan      html  css  js  c++  java
  • java 文件File操作

    ##############################################################
    java的File类常用方法:

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

    File file1=new File("config/");
    File file2=new File("config/");


    创建:
    createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false。
    file1.createNewFile();

    mkdir() 在指定位置创建一个单级文件夹。
    file1.mkdir();

    mkdirs() 在指定位置创建一个多级文件夹。
    file1.mkdirs();

    renameTo(File dest)如果目标文件与源文件是在同一个路径下,那么renameTo的作用是重命名, 如果目标文件与源文件不是在同一个路径下,那么renameTo的作用就是剪切,而且还不能操作文件夹。
    file1.renameTo(file2);


    删除:
    delete() 删除文件或者一个空文件夹,不能删除非空文件夹,马上删除文件,返回一个布尔值。
    file1.delete();

    deleteOnExit()jvm退出时删除文件或者文件夹,用于删除临时文件,无返回值。
    file1.deleteOnExit();

    判断:
    exists() 文件或文件夹是否存在。
    file1.exists();

    isFile() 是否是一个文件,如果不存在,则始终为false。
    file1.isFile();

    isDirectory() 是否是一个目录,如果不存在,则始终为false。
    file1.isDirectory();

    isHidden() 是否是一个隐藏的文件或是否是隐藏的目录。
    file1.isHidden();

    isAbsolute() 测试此抽象路径名是否为绝对路径名。
    file1.isAbsolute();

    获取:
    getName() 获取文件或文件夹的名称,不包含上级路径。
    file1.getName();

    getAbsolutePath()获取文件的绝对路径,与文件是否存在没关系
    file1.getAbsolutePath();

    length() 获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。
    file1.length();

    getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。
    file1.getParent();

    lastModified()获取最后一次被修改的时间。
    file1.lastModified();

    文件夹相关:
    static File[] listRoots()列出所有的根目录(Window中就是所有系统的盘符)
    File[] file3=File.listRoots();

    list() 返回目录下的文件或者目录名,包含隐藏文件。对于文件这样操作会返回null。
    file1.list();

    listFiles() 返回目录下的文件或者目录对象(File类实例),包含隐藏文件。对于文件这样操作会返回null。
    file1.listFiles();

    list(FilenameFilter filter)返回指定当前目录中符合过滤条件的子文件或子目录。对于文件这样操作会返回null。


    listFiles(FilenameFilter filter)返回指定当前目录中符合过滤条件的子文件或子目录。对于文件这样操作会返回null。

    #######################################################



    package javaTest01;

    import java.io.File;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.stream.Collectors;

    public class GetFiles {

    ArrayList<File> fileList=new ArrayList<File>();

    /**
    * 获取目录下所有文件
    * @param file
    * @return
    */
    public List<File> getFiles(File file){
    File[] fileArr=file.listFiles();
    for (File ele : fileArr) {
    if (ele.isDirectory()) {
    //getFiles(ele); //相对file的相对路径
    getFiles(new File(ele.getAbsolutePath())); //绝对路径
    } else {
    //fileList.add(ele);
    fileList.add(new File(ele.getAbsolutePath()));
    }
    }
    //stream对集合进行过滤
    List<File> fileListFilter=fileList.stream() //Collection对象转换成Stream
    .filter(x -> (x.toString().endsWith(".txt") && x.toString().startsWith("E") )|| x.toString().endsWith(".json")) //过滤后只保留 ①后缀名为.txt且开头为E ②后缀名为.json
    .collect(Collectors.toList());

    return fileListFilter;
    }

    ArrayList<Object> dirList=new ArrayList<Object>();
    public List<Object> getDirs(File file){
    File[] fileArr=file.listFiles();
    for(File ele:fileArr){
    if(ele.isDirectory()){
    //dirList.add(ele); //相对file的相对路径
    dirList.add(ele.getAbsolutePath()); //绝对路径
    getDirs(ele);
    }
    }
    return dirList;
    }



    public static void main(String[] args){
    File dir=new File("config");

    List<File> result=new GetFiles().getFiles(dir);
    System.out.println("Number of all files: "+result.size());
    for(Object ele : result){
    System.out.println(ele);
    }

    List<Object> result2=new GetFiles().getDirs(dir);
    System.out.println("Number of all dirs: "+result2.size());
    for(Object ele : result2){
    System.out.println(ele);
    }
    }

    }

  • 相关阅读:
    Centos设置阿里云yum源
    十大排序算法之Java实现
    什么是DFS和BFS?
    计算机专业技能-Java专项练习
    Lamda 表达式
    JavaWeb实现分页的四种方法
    Linux 常用关机命令及其比较
    Chocolatey常用命令
    JAVA++:JAVA中try、catch、finally带return的执行顺序
    MySQL++:MySQL 多行数据合并 GROUP_CONCAT
  • 原文地址:https://www.cnblogs.com/ShyPeanut/p/12690195.html
Copyright © 2011-2022 走看看