Java File 類的使用方法詳解

codeceo發表於2015-03-15

Java File類的功能非常強大,利用Java基本上可以對檔案進行所有的操作。本文將對Java File檔案操作類進行詳細地分析,並將File類中的常用方法進行簡單介紹,有需要的Java開發者可以看一下。

建構函式

public class FileDemo {
     public static void main(String[] args){
         //建構函式File(String pathname)
         File f1 =new File("c:\\abc\\1.txt");
         //File(String parent,String child)
         File f2 =new File("c:\\abc","2.txt");
         //File(File parent,String child)
         File f3 =new File("c:"+File.separator+"abc");//separator 跨平臺分隔符
         File f4 =new File(f3,"3.txt");
         System.out.println(f1);//c:\abc\1.txt

     }

 }

建立方法

1.boolean createNewFile() 不存在返回true 存在返回false
2.boolean mkdir() 建立目錄
3.boolean mkdirs() 建立多級目錄

刪除方法

1.boolean delete()
2.boolean deleteOnExit() 檔案使用完成後刪除

import java.io.File;
import java.io.IOException;
public class FileDemo2 {
    public static void main(String[] args){
        File f =new File("d:\\1.txt");
        try {
            System.out.println(f.createNewFile());//當檔案存在時返回false
            System.out.println(f.delete());//當檔案不存在時返回false
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

判斷方法

1.boolean canExecute()判斷檔案是否可執行
2.boolean canRead()判斷檔案是否可讀
3.boolean canWrite() 判斷檔案是否可寫
4.boolean exists() 判斷檔案是否存在
5.boolean isDirectory()
6.boolean isFile()
7.boolean isHidden()
8.boolean isAbsolute()判斷是否是絕對路徑 檔案不存在也能判斷

獲取方法

1.String getName()
2.String getPath()
3.String getAbsolutePath()
4.String getParent()//如果沒有父目錄返回null
5.long lastModified()//獲取最後一次修改的時間
6.long length()
7.boolean renameTo(File f)
8.File[] liseRoots()//獲取機器碟符
9.String[] list()
10.String[] list(FilenameFilter filter)

列出磁碟下的檔案和資料夾

public class FileDemo3 {
     public static void main(String[] args){
         File[] files =File.listRoots();
         for(File file:files){
             System.out.println(file);
             if(file.length()>0){
                 String[] filenames =file.list();
                 for(String filename:filenames){
                     System.out.println(filename);
                 }
             }
         }
     }

 }

檔案過濾

import java.io.File;
 import java.io.FilenameFilter;
 public class FileDemo4 {
     public static void main(String[] args){
         File[] files =File.listRoots();
         for(File file:files){
             System.out.println(file);
             if(file.length()>0){
                 String[] filenames =file.list(new FilenameFilter(){
                     //file 過濾目錄 name 檔名
                     public boolean accept(File file,String filename){
                         return filename.endsWith(".mp3");
                     }
                 });
                 for(String filename:filenames){
                     System.out.println(filename);
                 }
             }
         }
     }

 }

File[]  listFiles()

File[] listFiles(FilenameFilter filter)

利用遞迴列出全部檔案

public class FileDemo5 {
    public static void main(String[] args){
        File f =new File("e:\\音樂");
        showDir(f);
    }
    public static void showDir(File dir){
        System.out.println(dir);
        File[] files =dir.listFiles();
        for(File file:files){
            if(file.isDirectory())
                showDir(file);
            else 
                System.out.println(file);
        }
    }
}

移動檔案

找出d盤下所有的 .java 檔案,拷貝至 c:\jad 目錄下,並將所有檔案的型別由.java 修改為.jad 。

public class Test5 {
    public static void main(String[] args){
        File f1 = new File("d:\\");
        moveFile(f1);
    }
public static void moveFile(File dir){
    File[] files=dir.listFiles();
    for(File file:files){
        if(file.isDirectory())
            moveFile(file);
        else{
            if(file.getName().endsWith(".java"))
                file.renameTo(new File("c:\\jad\\"+
            file.getName().substring(0,file.getName().lastIndexOf('.'))+".jad"));
            }
        }
    }
}

以上就是Java File類的全部屬性和方法,我們只需簡單地呼叫上面的方法即可完成對指定檔案的操作,希望本文對你有所幫助。

相關文章