01.File文件基本操作

1-创建File对象

    /**
     * 创建我们 java.io.File对象
     */
    public static void test1()
    {
        //第一创建对象方式
        File parent=new File("f:/lsh");      //设置一个目录对象
        String child="刘诗华.txt";             //指定文件名
        File file1=new File(parent, child);  //目录对象,文件名
        
        //第二种创建对象方式  指定一个文件名 表示方法为字符串
        File file2=new File("f:/lsh/刘诗华.txt");
        
        //第三种创建方式    目录和文件都是用字符表示,但是目录和文件是分开来的
        File file3=new File("f:/lsh/","刘诗华.txt");
        
        System.out.println("对象1="+file1);
        System.out.println("对象2="+file2);
        System.out.println("对象3="+file3);
        
        //打印结果如下显示
        //对象1=f:\lsh\刘诗华.txt
        //对象2=f:\lsh\刘诗华.txt
        //对象3=f:\lsh\刘诗华.txt
        
    }

 

2.检查我们文件是否存在

public static void exists() {
        
        File file2=new File("f:/lsh/刘诗华.txt");
        boolean b = file2.exists();    //如果硬盘上面存在刘诗华.txt文件 则会返回true 否则就是返回false
        System.out.println(b);         //因为我的电脑上面没有文件,所以返回false
    }

 

3.创建文件

    private static void createNewFile() throws IOException {
        
        File file2=new File("f:/lsh/刘诗华.txt");
        boolean b = file2.exists();    //如果硬盘上面存在刘诗华.txt文件 则会返回true 否则就是返回false
        
        //如果不存在,则创建
        //因为我们调用 file2.exists()得到的结果为 false 我们对结果取反之后 会得到 true,就会执行if代码块的程序
        if(!b)
        {
            file2.createNewFile();
            System.out.println("文件创建成功");
        }
        
    }

 4-修改文件名称

    private static void renameTo() {
        
        File file2=new File("f:/lsh/刘诗华.txt");  //源文件名称
        
        File dest=new File("f:/lsh/hello.txt"); //新文件名
        
        // public boolean renameTo(File dest)  JDK里面是文档是传入一个新File对象
        file2.renameTo(dest); //执行文件更名操作
        
    }

 

5.删除文件

    private static void delete() {
        
        File file2=new File("f:/lsh/刘诗华.txt");  //要删除的文件对象
        
        //判断文件是否存在,如果存在则执行删除delete()方法
        if(file2.exists())
        {
            file2.delete();
            System.out.println("删除文件成功");
        }
    
    }

 

6.创建目录文件夹

    private static void mkdir() {
        
        //定义一个文件夹
        File dir =new File("f:/lsh");
        //判断文件夹是否存在
        if(!dir.exists())
        {
            dir.mkdir();   // mkdir方法创建 lsh一级目录
            // dir.mkdirs();  // mkdirs方法会创建不存在父级目录文件
        }
        
    }

7.修改文件夹名称

    private static void modify() {
        
        //定义一个文件夹
        File dir =new File("f:/lsh");
        
        if(dir.exists())
        {
            File dest=new File("f:/xxxx");
            dir.renameTo(dest);
        }
        
    }

8.列表文件夹下面的所有的文件

    private static void list() {
        
        File dir =new File("f:/xxxx");
        
        if(dir.exists())
        {
            // list() 返回的是一个字符串数组类型
            String[] list = dir.list();
            
            for (String string : list) {
                System.out.println(string);
            }
        }
        else
        {
            System.out.println("目录不存在");
        }
        
    }

 

9.列表指定文件夹下面的文件,返回的是一个File对象数组

    //列表指定文件夹下面的文件
    private static void listFile() {
        
        File dir =new File("f:/xxxx");
        
        if(dir.exists())
        {
            // listFiles() 返回的是一个File数组对象
            // 所以File的相关操作我们都可以方便使用
            File[] list = dir.listFiles();
            
            for (File file : list) {
                System.out.println(file);
            }
        }
        else
        {
            System.out.println("目录不存在");
        }
        
    }

10.列表指定文件夹下面的文件,并做过滤 

第一种采用匿名内部类

    private static void filter() {
        
        File dir=new File("f:/xxxx");
        
        if(!dir.exists())
        {
            System.out.println("文件夹不存在");
            return;
        }
        
        dir.listFiles(new FilenameFilter(){

            public boolean accept(File dir, String name) {
                
                boolean b=false;
                
                if(dir.isFile() && name.endsWith("docx"))
                {
                    b=true;
                }
                
                return b;
                
            }
            
        });
    }

 第二种方法采用实现接口方式来做

class Filter implements FilenameFilter
{
    @Override
    public boolean accept(File dir, String name) {
        
        boolean b=false;
        
        //通过dir和name变量 创建一个file对象,如果是文件 并且是 docx结尾的文件,则返回true
        if(new File(dir,name).isFile() && name.endsWith("docx"))
        {
            b=true;
        }
        return b;
    }
}


    private static void filter() {
        
        File dir=new File("f:/xxxx");
        
        if(!dir.exists())
        {
            System.out.println("文件夹不存在");
            return;
        }
        
        Filter filter=new Filter();
        File[] list = dir.listFiles(filter);
        
        for (File file : list) {
            System.out.println(file);
        }
    }

 11.删除某个文件夹

    public static void main(String[] args) {

        File dir=new File("f:/abc");
        removeDir(dir);
    }

    //删除目录下面的所有文件和本目录
    private static void removeDir(File dir) {
        
        //判断目录是否存在磁盘中
        if(!dir.exists())
        {
            System.out.println("对不起,目录不存在");
            return;
        }
        //列表所有的文件信息
        File[] list = dir.listFiles();
        for (File file : list) {
            //不管是什么,如果是目录,下面有文件,则删除不成功
            //如果是文件,或者是空目录,会直接删除的,这里不会报异常的,所有我们不用它
            file.delete();
            if(file.isDirectory())
            {
                //采用递归方法进行删除
                removeDir(file);
            }
        }
        //最后把自己的目录(空)也删除掉
        dir.delete();
    }

 

posted @ 2018-09-18 21:04  往事只能回味---  阅读(172)  评论(0)    收藏  举报