首页 > 代码库 > java File类

java File类

              今天我要总结一下java File类。这个是一个很重要的类。

              首先是我画的思维导图。

              技术分享

     还写了一些自己写的代码。

      

/**
 * Date   :  2017/6/24
 * Author :  Hsj
 * Description :
 */
public class Demo {

    /**
     * File(pathname)表示文件或文件夹路径
     * File(String parent,child);
     * File(File parent,child);
     */
    @Test
    public void fun() {
        //第一种构造方法
        File file = new File("F:\\BaiduYunDownload\\01、第一阶段java基础(更多视频教程 www.pcsky.wang)\\day19\\day19\\video\\001_今日内容.avi");
        System.out.println("文件路径是否存在:" + file.exists());
        File file2 = new File("ddd.txt");//项目文件夹
        System.out.println(file2.exists());

        //第二种构造方法
        String parent = "F:\\BaiduYunDownload\\01、第一阶段java基础(更多视频教程 www.pcsky.wang)\\day19\\day19\\video";
        String child = "001_今日内容.avi";
        File file3 = new File(parent, child);
        System.out.println(file3.exists());

        //第三种构造函数
        File file4 = new File("F:\\BaiduYunDownload\\01、第一阶段java基础(更多视频教程 www.pcsky.wang)\\day19\\day19\\video");//封装成File
        String child2 = "001_今日内容.avi";
        File file5 = new File(file4, child2);
        System.out.println(file5.exists());


    }

    /**
     * 创建文件
     * createNewFile();//创建文件夹,有就创建返回true,没有就放回false
     * mkdir();创建文件夹
     * mkdirs()创建文件夹和父文件夹
     */
    @Test
    public void fun2() {
      /*  File file = new File("yyy.txt");
        try {
            boolean newFile = file.createNewFile();
            System.out.println(newFile);
        } catch (IOException e) {
            e.printStackTrace();
        }*/

       /* File file2 = new File("make");
        boolean mkdir = file2.mkdir();
        System.out.println(mkdir);*/

        File file3 = new File("make//make//m");
        boolean mkdirs = file3.mkdirs();
        System.out.println(mkdirs);

    }

    /**
     * renameTo()重命名或者剪切
     * delete()删除文件或者文件夹
     * 文件夹中不能包含文件夹或者文件
     * 文件夹中不能包含文件夹或者文件
     */
    @Test
    public void fun3() {
       /* File file = new File("make//make/m/xx.txt");
        File file2 = new File("ddd.txt");
        boolean b = file2.renameTo(file);//完成文件的重命名或者指定盘符剪切
        System.out.println(b);*/
/*
        File file3=new File("yyy.txt");
        file3.delete();*/

        File file4 = new File("make//make//m/xx.txt");
        boolean delete = file4.delete();
        System.out.println(delete);
    }

    /**
     * 判断功能
     */
    @Test
    public void fun4() {
        File file = new File("zzz.txt");

       /* file.setWritable(false);//设置不可写
        System.out.println(file.canWrite());*/
       /* file.setExecutable(false);*/

       /* try {
            file.createNewFile();创建文件
        } catch (IOException e) {
            e.printStackTrace();
        }*/
    }

    /**
     * 获取功能
     * public String getAbsolutePath():获取绝对路径
     * public String getPath():获取路径
     * public String getName():获取名称
     * public long length():获取长度。字节数
     * public long lastModified():获取最后一次的修改时间,毫秒值
     * public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
     * public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
     */
    @Test
    public void fun5() {
/*
         File file=new File("zzz.txt");
         System.out.println(file.getAbsoluteFile());///获取绝对路径
         System.out.println(file.getParent());//只能用于路径,获取父路径
         System.out.println(file.getPath());//获取构造函数传过来的路径
         System.out.println(file.getName());//获取文件名
         System.out.println(file.length());
         System.out.println(file.lastModified());//获取最后一次修改的时间毫秒值

         Date d=new Date(file.lastModified());
         SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
         System.out.println(sdf.format(d));*/

        /* File file=new File("C:\\Users\\ABC\\Desktop\\javaWork\\Struts2\\Struts2MavenDemo3");
         String [] fileList=file.list();
         for (String s:fileList){
             System.out.println(s);
         }

         System.out.println(file.getAbsoluteFile());*/

    }

    public static void isSuffixJpg(File file, List<String> mlist) {
        File[] fileList = file.listFiles();//获取file
        if (fileList != null) {
            for (File f : fileList) {
                if (f.isDirectory()) {
                    isSuffixJpg(f, mlist);
                } else {
                    String fileName = f.getName();
                    if (fileName.endsWith(".jpg"))
                        mlist.add(f.getName());
                }
            }
        }

    }

    @Test
    public void fun6() {
        File file = new File("F:\\我的文件\\我的图片\\TU");
        List<String> list = new ArrayList<>();
        isSuffixJpg(file, list);
        System.out.println(list.size());
        for (String s : list) {
            System.out.println(s);
        }
    }

    //遍历指定文件夹下的文件
    @Test
    public void fun7() {
        File file = new File("F://");
        String[] sList = file.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                System.out.println(dir.getName());
                System.out.println();
                return true;
            }
        });

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

    @Test
    public void fun8(){
        List<String> sList=new ArrayList<>();
        File file=new File("F:\\我的文件\\我的图片\\TU");
        isSuffix(file,sList);
        for (String s:sList
             ) {
            System.out.println(s);
        }
    }


    public static void isSuffix(File file,List<String> mlist){
        File[] files = file.listFiles();
        for (File f:files){
            if(f.isDirectory()){
                isSuffix(f,mlist);
            }
            else {
                String name = f.getName();
                if(name.endsWith(".jpg")){
                    mlist.add(name);
                }
            }
        }

    }

    @Test
    public  void fun9(){
        File file= new File("D://");
        String [] sList=file.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                /*System.out.println(dir);//封装的目录D盘
                System.out.println(name);//目录下文件的名字*/
                File file2=new File(dir,name);
                return file2.isFile()&&file2.getName().endsWith(".jpg");
            }
        });

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

    @Test
    public void  fun10(){
        File file=new File("D://");
        File [] files=file.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return true;
            }
        });
        
        for (File f:files){
            System.out.println(f.getName());
        }

    }
}

  

              

java File类