1. 程式人生 > >java File類

java File類

構造 ffi struts 表示 exec pcs end absolute turn

今天我要總結一下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類