File相关(创建文件及目录)

当前目录下创建文件createNewFile()或目录mkdir();删除文件和目录(用到递归)  delete();创建多级目录 mkdirs();获取目录中的子项 File[] subs = dir.listFiles(); 文件过滤器筛选文件 File[] subs = dir.listFiles(filter);。

import java.io.File;

import java.io.FileFilter;        

import java.io.IOException;

/**
 * File相关       
 * @author  Romanceling
 *
 */
public class FileTest {
    public static void main(String[] args) throws IOException {
        /*
         *
        /*
         * boolean exists()
         * 判断File表示的文件或目录是否真实存在
         */
        if(!file.exists()){
            //创建该文件
            file.createNewFile();
            System.out.println("创建完毕!");
        }

       /*
         * 删除test.txt文件
         */
        if(file.exists()){
            file.delete();
            System.out.println("删除完毕!");
        }

        /*
         * 在当前目录下创建一个目录(路径)demo
         */

        File dir = new File("demo");
        if(!dir.exists()){
            //创建一个目录
            dir.mkdir();
            System.out.println("创建完毕!");
        }

        //删除一个目录

        if(dir.exists()){
            /*
             * 使用delete删除目录时,必须保证该
             * 目录是一个空目录(不含有任何子项)
             * 才可以将其删除.
             */
            dir.delete();
            System.out.println("删除完毕!");
        }

      /**删除多级目录
     * 删除给定的File对象表示的文件或目录
     * 此时需要用到递归
     */
*    public static void delete(File file){
*        if(file.isDirectory()){    //如果是目录
*            //先删除该目录中所有内容
*           File[] subs = file.listFiles();
*           for(File sub : subs){
*               delete(sub);    //递归

*         }

*         file.delete();    //文件或者空的目录可以直接删除

*    }

     */   

        /*
         * 在当前目录下创建一个多级目录:
         * a/b/c/d/e/f
         */
        File dir = new File(
            "a"+File.separator+      //File.separator 代表"/"(Linux系统中)    或"\"(Windows系统中)
            "b"+File.separator+
            "c"+File.separator+
            "d"+File.separator+
            "e"+File.separator+
            "f"
        );
        if(!dir.exists()){
            /*
             * mkdirs在创建当前目录的同时会将
             * 其所有不存在的父目录一同创建出来
             */
            dir.mkdirs();
            System.out.println("创建完毕!");
        }

        /*
         * 获取当前目录中的所有内容
         */
        File dir = new File(".");
        //获取一个目录中的所有子项
        File[] subs = dir.listFiles();
        
        for(File sub : subs){
            if(sub.isFile()){
                System.out.print("文件:");
            }else{
                System.out.print("目录:");
            }
            System.out.println(sub.getName());
        }

        /*
         * 配合过滤器(自定义类MyFilter),获取当前目录下所有名字以"."开头的子项
         */
        File dir = new File(".");
        MyFilter filter = new MyFilter();
        /*
         * 重载的listFiles方法返回的子项是满足给定
         * 过滤器要求的子项,其他则被忽略
         */
        File[] subs = dir.listFiles(filter);
        for(File sub : subs){
            System.out.println(sub.getName());
        }    

        /*也可以用匿名内部类的方式简写文件过滤器(FileFilter)

*        File dir = new File(".");
*        FileFilter filter = new FileFilter(){
*            public boolean accept(File file){
*                return file.isFile();
*            }
*        };
*        File[] subs = dir.listFiles(filter);

    */

    }
}


/**
 * 使用文件过滤器(FileFilter)获取一个目录中满足条件的子项
 *
 */

class MyFilter implements FileFilter{
    /**
     * 过滤条件:名字是以"."开头的
     */
    public boolean accept(File file) {
        String name = file.getName();
        System.out.println("正在过滤:"+name);
        return name.startsWith(".");
    }
}




 

转载于:https://my.oschina.net/langgege/blog/655916

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值