1. 程式人生 > >File檔案操作類

File檔案操作類

Java.io包中,File類是唯一一個與檔案本身操作(建立、刪除、取得資訊)有關,與檔案內容無關的程式類。

1.File類的基本使用(即可描述真實檔案,也可是個資料夾)

File類的兩種例項化方式:

  • public File(String pathname) :傳入檔案的絕對路徑
  • public File(String parent,String child):設定父路徑和子路徑

1. 建立新檔案:
public boolean createNewFile() throws IOException

 1.取得file物件
  File file = new File("路徑\建立的檔名(JavaIO)");
  file.createNewFile();

2. 判斷檔案是否存在:
public boolean exists()

 if(file.exists()){
 ...
 }

3. 刪除檔案:
public boolean delete()

      if(file.exist()){  //首先需要判斷檔案是否存在,存在之後才能將其刪除
       file.delete();
      }

4.路徑分隔符: // —> File.separator

File file = new File("C:" + File.separator + "Users" + File.separator + "Lenovo"
                + File.separator + "Desktop");

2.目錄操作

1.取得父路徑與父File物件
public String getParent()
public File getParentFile()

2.建立目錄
public boolean mkdirs() :無論有多少級父目錄都會一次性建立

public class Test {
public static void main(String[] args)throws Exception {
    File file = new File("C:" + File.separator + "Users" + File.separator + "Lenovo"
            + File.separator + "Desktop" + File.separator + "www"+ File.separator +"bit"+
            File.separator +"java"+ File.separator +"test.txt");
    //取得父檔案物件
    File parentFile = file.getParentFile();
    if(!parentFile.exists()){ //如果檔案不存在就遞迴建立
        parentFile.mkdirs();
    }
    if(file.exists()){
        file.delete();
    }else{
        file.createNewFile();
    }
  }
}

3.取得檔案資訊

  • 判斷File物件是否是檔案
    public boolean isFile()
  • 判斷File物件是否是路徑
    public boolean isDirectory()
public class Solution {
    public static void main(String[] args)throws Exception {
        File file = new File("C:" + File.separator + "Users" + File.separator + "Lenovo"
                + File.separator + "Desktop" + File.separator + "www"+ File.separator +"bit"+
                File.separator +"java"+ File.separator +"test.txt");   //File物件是檔案
        File parentFile = file.getParentFile();  //File物件是路徑
        if(!parentFile.exists()){
            parentFile.mkdirs();
        }
        if(!file.exists()) {
            file.createNewFile();
        }
        if(parentFile.isDirectory()){
            System.out.println("patrenFile是路徑");
        }
        if(file.isFile()){
            System.out.println("file是檔案");
        }
    }
}
輸出結果:
patrenFile是路徑
file是檔案
  • 取得檔案大小
    public long length() 位元組/1024 :KB
System.out.println(file.length()/1024);
  • 取得最後修改日期
    public long lastModified()
System.out.println(new Date(file.lastModified()));
  • 列舉一個目錄的全部組成:
    public File[ ] listFiles()
    File[] files = file.listFiles();
    for(File file : files){
       system.out.println(file)
    }

時間操作:

long start = System.currentTimeMillis();
long end =System.currentTimeMillis();

IO相關處理屬於阻塞式耗時操作,一般放在子執行緒中進行。