File 的一些操作

java.io

File

  1. 描述文件本身和属性
  2. File类的方法大多是自解释型的
  3. isFile()和isAbsolute()不是自解释型的
  4. isFile 文件返回true,目录返回false,设备驱动和命名管道返回false

代码示例

    public static void p(String str,Object obj){
        System.out.printf("%100s : %-100s\n",str,String.valueOf(obj));
    }
    public static void main(String[] args) {
        File file = new File("/java/COPYRIGHT");
        p("File name",file.getName());
        p("path",file.getPath());
        p("绝对路径ABSpath",file.getAbsolutePath());
        p("Parent",file.getParent());
        p("exists",file.exists());
        p("canWarite",file.canWrite());
        p("isDirectory",file.isDirectory());
        p("isFile",file.isFile());
        p("isAbsSolute",file.isAbsolute());
        p("file last modified",file.lastModified());
        p("size",file.length()+"Bytes");

    }
//输出
//        File name : COPYRIGHT
//        path : \java\COPYRIGHT
//        绝对路径ABSpath : E:\java\COPYRIGHT
//        Parent : \java
//        exists : false
//        canWarite : false
//        isDirectory : false
//        isFile : false
//        isAbsSolute : false
//        file last modified : 0
//        size : 0Bytes

renamTo重命名

   		File file  = new File("G:/path/a.bat");
        boolean flag = file.renameTo(new File("G:/path/b.bat"));
        System.out.println(flag);//true

delete 如果有子文件或者目录无法删除,空目录可以删除

    File file  = new File("G:/path/A");
        boolean flag = file.delete();
        System.out.println(flag);//false
        System.out.println(new File("G:/path/B").delete());//true

递归删除所有文件

public void delFile(String path){
        File file  = new File(path);

        if(file.isFile()){
            file.delete();
        }
        if(file.isDirectory()){
            String[] strs = file.list();

            if(strs.length>0){
                for(int i=0;i<strs.length;i++){
                    delFile(path+ File.separator+strs[i]);
                }
                file.delete();
            }
        }
    }

实现了Comparable 接口

   File f1 = new File("G:/path/a.bat");
        File f2 = new File("G:/path/b.bat");
        int co = f1.compareTo(f2);
        System.out.println(co);
        System.out.println(f2.compareTo(f1));
        //-1
        //1

转为Path对象 toPath

File f1 = new File("G:/path/a.bat");
        Path path = f1.toPath();

目录

包含其他文件和目录的File

isDirectory 判断是否是文件

list()方法返回其中的目录和文件

String[] list()

 File file = new File("/");
        String[] arr = file.list();
        for(int i=0;i< arr.length;i++){
            System.out.println(arr[i]);
        }

获取当前目录下的所有目录和文件

public void iteratorFile(String path){
        File file = new File(path);
        System.out.println(file.getPath()  + file.getName());
        if(file.isDirectory()){
            String[] arr = file.list();
            if(arr != null)
                for(String name : arr){
                    System.out.println(name);
                    if(!path.equals("/")){
                        iteratorFile(path  + "/" + name);
                    }else{
                        iteratorFile(path  + name);
                    }
                }
        }
    }

public String[] list(FilenameFilter filter)

实现

public class FileFilterImpl  implements FilenameFilter {

    private String ext;

    public FileFilterImpl(String exc){
        this.ext = exc;
    }

    @Override
    public boolean accept(File dir, String name) {
        return name.endsWith(ext);
    }

}
   File file = new File("/");
        //androidProject
        String[] strs = file.list(new FileFilterImpl("roject"));

        for(String s : strs){
            System.out.println(s);
        }

lambda

  File file = new File("/androidProject");
        //androidProject
        String[] strs = file.list((f,n)->{
           // System.out.println("fileName:" + f.getName()); 当前目录
           // System.out.println("name"+n); 当前目录的子目录或文件
            return !n.equals(".idea");
        });

        for(String s : strs){
            System.out.println(s);
        }

还有listFiles,方法签名如下

File[] listFiles();

File[] listFiles(FilenameFIlter fileName)

File[] listFiles(FileFilter fObj)

具体使用方式和上面一致

创建目录

maker

在存在的路径下创建目录

makers

为不存在的路劲创建目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值