1. 程式人生 > >Java File類學習 檔案常用操作

Java File類學習 檔案常用操作

1,File 是什麼?
檔案物件,用來操作資料夾/檔案的物件,檔案物件代表磁碟中實際存在的檔案和目錄


常用操作方法:

        File f=new File();
        //檔案是否存在
           f.exists();      
        //是否是資料夾
           f.isDirectory();        
        //是否是檔案(非資料夾)
           f.isFile();       
        //檔案長度
           f.length();        
        //檔案最後修改時間
f.lastModified(); //設定檔案修改時間 f.setLastModified(0); //重新命名 f.renameTo(f2);// File f2 =new File("/完整路徑/檔名.txt"); // 以字串陣列的形式,返回當前資料夾下的所有檔案(不包含子檔案及子資料夾) f.list(); // 以檔案陣列的形式,返回當前資料夾下的所有檔案(不包含子檔案及子資料夾) File[]fs= f.listFiles(); // 以字串形式返回獲取所在資料夾
f.getParent(); // 以檔案形式返回獲取所在資料夾 f.getParentFile(); // 建立資料夾,如果父資料夾不存在,建立就無效 f.mkdir(); // 建立資料夾,如果父資料夾不存在,就會建立父資料夾 f.mkdirs(); // 建立一個空檔案,如果父資料夾不存在,就會丟擲異常 f.createNewFile(); // 所以建立一個空檔案之前,通常都會建立父目錄 f.getParentFile().mkdirs(); // 列出所有的碟符c: d: e: 等等
f.listRoots(); // 刪除檔案 f.delete(); // JVM結束的時候,刪除檔案,常用於臨時檔案的刪除 f.deleteOnExit();
    下面給個例項:找出kugou資料夾裡面最大(最小)的檔案。以及瀏覽所有的子目錄下的檔案
import java.io.File;

public class Main {

    public static void main(String[] args) {
        String filepath="E:/KuGou/";
        File f = new File("E:/KuGou");
        File f1;
        File[] fs = f.listFiles();
        if (null == fs) {
            return;
        }
        long minSize = Integer.MAX_VALUE;//
        long maxSize = 0;//檔案大小
        File minFile = null;
        File maxFile = null;
        for (File file : fs) {
            if (file.isDirectory()) {//是否是資料夾
                f1 = new File(filepath+file.getName());//取得子資料夾,拼接路徑。再找出子檔案下面的檔案
                 File[] f1c=f1.listFiles();
                for (File a : f1c) {
                    System.out.println("子資料夾"+file.getName()+"下的所有檔案"+a.getName());
                  }

            }
            if (file.length() > maxSize) {//外層最大的檔案
                maxSize = file.length();
                maxFile = file;
            }
            if (file.length() != 0 && file.length() < minSize) {//外層最小的檔案
                minSize = file.length();
                minFile = file;
            }
        }
        System.out.printf("最大的檔案是%s,其大小是%,d位元組%n",maxFile.getAbsoluteFile(),maxFile.length());
        System.out.printf("最小的檔案是%s,其大小是%,d位元組%n",minFile.getAbsoluteFile(),minFile.length());
    }
}




子資料夾KugouMusic下的所有檔案clean bandit、demi lovato - Solo (DJ版).kgm
子資料夾KugouMusic下的所有檔案盧冠廷 - 一生所愛.kgm
子資料夾KugouMusic下的所有檔案周杰倫 - 不愛我就拉倒.kgm
子資料夾KugouMusic下的所有檔案孫楠、韓紅 - 美麗的神話.kgm
子資料夾KugouMusic下的所有檔案王力巨集、范曉萱 - 雪人.kgm
子資料夾KugouMusic下的所有檔案蕭敬騰 - 百里守約.kgm
子資料夾KugouMusic下的所有檔案袁婭維 - 說散就散.kgm
最大的檔案是E:\KuGou\周柏豪.jpg,其大小是456,135位元組
最小的檔案是E:\KuGou\於毅.jpg,其大小是2,137位元組

最後推薦一個學習地址:很不錯的學習網站