1.  列舉型別  

描述一種事物的所有情況|所有可能|所有例項

(1)通過enum關鍵字定義列舉型別

(2)列舉的成員,欄位都作為當前列舉型別的例項存在,預設被public static final修飾

(3)定義的列舉型別都會隱式的繼承自java.lang.Enum 這是所有Java語言列舉型別的公共基類。

(4)在列舉型別中構造器預設私有

(5)java是值傳遞:基本資料型別的資料值,引用資料型別的地址值

2、File 路徑或者檔案的抽象的表現形式

注意:java中路徑的分隔符可以使用: \\ / //

public static void main(String[] args) throws IOException {

        //File(String pathname) 通過將給定的路徑名字串轉換為抽象路徑名來建立新的 File例項。

        File file1 = new File("D:\\test.txt");

        File file2 = new File("D:\\AAA");

        File file3 = new File("D:/");

        //File(File parent, String child) 從父抽象路徑名和子路徑名字串建立新的 File例項。

        File file4 = new File(file3,"test.txt");



        ////File(String parent, String child) 從父路徑名字串和子路徑名字串建立新的 File例項。

        File file5 = new File("D://AAA","BBB");



        File file6 = new File("D://haha.txt");



        System.out.println(file1);

        System.out.println(file2);

        System.out.println(file4);



        System.out.println(file1.equals(file4));

        System.out.println(file2.equals(file5));

        System.out.println(file5);



        //常用方法

        //boolean canWrite() 測試應用程式是否可以修改此抽象路徑名錶示的檔案。

        //boolean exists() 測試此抽象路徑名錶示的檔案或目錄是否存在。

        //boolean setReadOnly() 標記此抽象路徑名指定的檔案或目錄,以便僅允許讀取操作。

        if(file1.exists()){

            System.out.println("只讀狀態設定: "+file1.setReadOnly());

            System.out.println("判斷檔案file1是否可以編寫 "+file1.canWrite());

        }



        //boolean createNewFile() 當且僅當具有此名稱的檔案尚不存在時,以原子方式建立由此抽象路徑名命名的新空檔案。

        if(!file6.exists()){

            System.out.println(file6.createNewFile());

        }



        //boolean delete() 刪除此抽象路徑名錶示的檔案或目錄。  空資料夾才可以刪除

        System.out.println(file6.delete());

        System.out.println(file2.delete());



        //File getAbsoluteFile() 返回此抽象路徑名的絕對形式。

        //String getAbsolutePath() 返回此抽象路徑名的絕對路徑名字串。

        System.out.println(file1.getAbsolutePath());

        System.out.println(file1.getAbsoluteFile());



        //預設相對於當前專案下

        File file = new File("test.txt");

        System.out.println(file);

        System.out.println(file.getAbsolutePath()); //D:\source_s\lesson\java49\0206_常用類\002_code\project_class\test.txt

        System.out.println(file.getAbsoluteFile()); //D:\source_s\lesson\java49\0206_常用類\002_code\project_class\test.txt



        //long getFreeSpace() 通過此抽象路徑名返回分割槽 named中未分配的位元組數。

        System.out.println(file3.getFreeSpace());

        //long getTotalSpace() 通過此抽象路徑名返回分割槽 named的大小。



        //String getName() 返回此抽象路徑名錶示的檔案或目錄的名稱。

        System.out.println(file1.getName());

        System.out.println(file5.getName());



        //String getParent() 返回此抽象路徑名父項的路徑名字串,如果此路徑名未指定父目錄,則返回 null 。

        //File getParentFile() 返回此抽象路徑名父項的抽象路徑名,如果此路徑名未指定父目錄,則返回 null 。

        System.out.println(file1.getParent());

        System.out.println(file1.getParentFile());

        System.out.println(file5.getParent());

        System.out.println(file5.getParentFile());



        /*

        boolean isAbsolute() 測試此抽象路徑名是否為絕對路徑。

        boolean isDirectory() 測試此抽象路徑名錶示的檔案是否為目錄。

        boolean isFile() 測試此抽象路徑名錶示的檔案是否為普通檔案。

         */

        System.out.println(file1.isFile());

        System.out.println(file1.isDirectory());

        System.out.println(file1.isAbsolute());



        //long lastModified() 返回上次修改此抽象路徑名錶示的檔案的時間。

        System.out.println(file1.lastModified());

        System.out.println(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date(file1.lastModified())));



        //long length() 返回此抽象路徑名錶示的檔案的長度。

        System.out.println(file1.length());



        //String[] list() 返回一個字串陣列,用於命名此抽象路徑名錶示的目錄中的檔案和目錄。

        //File[] listFiles() 返回一個抽象路徑名陣列,表示此抽象路徑名錶示的目錄中的檔案。

        File src = new File("D://DDD");

        System.out.println(Arrays.toString(src.list()));

        File[] files = src.listFiles();

        for(File f:files){

            System.out.println(f);

        }



        File file8 = new File("D://haha");

        File file9 = new File("D://hehe/heihei/hengheng.txt");

        //boole9n mkdir() 建立此抽象路徑名指定的目錄。   一層

        System.out.println(file8.mkdir());

        //boolean mkdirs() 建立此抽象路徑名指定的目錄,包括任何必需但不存在的父目錄。    多層

        System.out.println(file9.getParentFile().mkdirs());



        //boolean renameTo(File dest) 重新命名此抽象路徑名錶示的檔案。

        //測試 : 跨碟符是否可以實現重新命名???

        File file10 = new File("D://test2.txt");

        System.out.println(file1.renameTo(file10));

    }

}