1. 程式人生 > 其它 >IO File和遞迴

IO File和遞迴

IO:

java資料都在記憶體中,一旦程式結束,資料就消失了,可以使用io操作:將記憶體中的資料儲存到持久化裝置上Output操作,將持久化裝置上的資料讀取到記憶體中Input操作;

File類的建構函式

使用構造方法建立File

        File file2 = new File("src");
        File file3 = new File("D:\\","java");
        File file4 = new File(new File("D:\\java"),"hello.txt");

File類的獲取

File file = new File("D:\\java\\hello.txt");
// 獲取絕對路徑 System.out.println(file.getAbsolutePath()); // 獲取檔名 System.out.println(file.getName()); // 路徑 System.out.println(file.getPath()); // 檔案長度:位元組數 System.out.println(file.length());

File類對檔案操作

//    建立檔案
    public static void mathod01() throws
IOException{ // 描述要建立的檔案路徑 File file = new File("D:\\java\\a"); // 建立檔案 boolean flag = file.createNewFile(); System.out.println(flag); } // 刪除檔案或資料夾 public static void mathod02(){ // 描述要刪除的檔案或資料夾路徑 File file = new File("D:\\java\\b"); boolean
flag = file.delete(); System.out.println(flag); } // 判斷檔案屬性 public static void mathod03(){ File file = new File("D:\\java\\hello.txt"); // 是否存在檔案 System.out.println(file.exists()); // 是否是資料夾 System.out.println(file.isDirectory()); // 是否是檔案 System.out.println(file.isFile()); } // 建立資料夾 public static void mathod04(){ File file = new File("D:\\io0429\\java.txt"); boolean flag = file.mkdirs(); System.out.println(flag); }

list和listFiles方法

        File file = new File("D:\\java");
//        獲取當前資料夾下的所有檔案和資料夾的名陣列
        String [] files = file.list();
        for(String f : files){
            System.out.println(f);
        }
//        獲取當前資料夾下的所有檔案和資料夾物件陣列
        File [] all= file.listFiles();
        for(File f : all){
            System.out.println(f);
        }

遞迴

指在當前方法呼叫自己

遞迴要有條件限定,保證遞迴可以停止,否則會導致棧記憶體溢位,遞迴次數過多也會導致棧記憶體溢位。

//        計算1-100的和
        public static int add(int n){
            if(n == 1){
                return 1;
            }
            return n + add(n-1);
        }
//        斐波那契數列
        public static int create(int n ){
            if(n == 1){
                return 1;
            }
            if(n == 2){
                return 1;
            }
            return create (n-1) + create (n-2);
        }