天天看點

Java---File檔案操作類

IO的核心組成就是五個類(File、OutputStream、InputStream、Reader、Writer)一個接口(Serializable)

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

1.File類的使用

java.io.File類是一個普通的類,直接産生執行個體化對象即可。如果要執行個體化對象則需要使用到兩個構造方法:

  • public File(String pathname) ;
  • public File(String parent, String child),設定父路徑和子路徑。 

建立一個新檔案

public boolean createNewFile() throws IOException  //檢查異常
           

範例:建立新檔案

package www.bit.java.io;
import java.io.File;
import java.io.IOException;
public class TestIO {
    public static void main(String[] args) {
       // 定義要操作的檔案路徑
       File file = new File("/Users/yuisama/Desktop/TestIO.java");
       try {
           file.createNewFile();
       } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
     }
   }
}
           

File類隻是建立檔案本身,但是對于其内容并不做處理。

判斷檔案是否存在:

public boolean exists()
           

删除檔案

public boolean delete()
           

2.目錄操作

File類中關于目錄有如下方法:

取得父路徑或父File對象:

public String getParent()
public File getParentFile()
           

若想建立父路徑,此時最好取得父路徑的File類對象。

建立目錄(無論有多少級父目錄,都會建立)

public boolean mkdirs()
           

範例:Java檔案目錄操作

package www.bit.java.io;
import java.io.File;
import java.io.IOException;
public class TestIO {
      public static void main(String[] args) throws IOException {
      // separator由不同作業系統下的JVM來決定到底是哪個杠杠!
      File file = new File(File.separator + "Users" + File.separator + "yuisama" +
   File.separator + "Desktop"+ File.separator +
   "javaIO"+File.separator+"bit"+File.separator+"TestIO.java");
      if (!file.getParentFile().exists()) { // 建立父目錄
           file.getParentFile().mkdirs() ; // 有多少級父目錄就建立多少級
           }
      if (file.exists()) {
       // 檔案存在,進行删除
         file.delete();
      } else {
         file.createNewFile();
      }
    }
}
           

3.檔案資訊

在File類裡面提供有一系列取得檔案資訊的操作:

1. 判斷路徑是否是檔案: public boolean isFile()

2. 判斷路徑是否是目錄: public boolean isDirectory()

3. 取得檔案大小(位元組): public long length()

4. 最後一次修改日期 : public long lastModified()

範例:取得檔案資訊

package www.bit.java.io;
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class TestIO {
     public static void main(String[] args) throws IOException {
     // 要操作的檔案
     File file = new File(File.separator + "Users" + File.separator + "yuisama" +
  File.separator + "Desktop"
  + File.separator + "test.png");
   // 保證檔案存在再進行操作
     if (file.exists() && file.isFile()) {
        System.out.println("檔案大小:" + file.length());
        System.out.println("最後一次修改日期: " + new Date(file.lastModified()));
     }
   }
}
           

 範例:列出目錄中的全部組成

package www.bit.java.io;
import java.io.File;
import java.io.IOException;
public class TestIO {
     public static void main(String[] args) throws IOException {
     // 要操作的檔案
     File file = new File(File.separator + "Users" + File.separator + "yuisama" +
  File.separator + "Desktop");
  // 保證是個目錄且存在
     if (file.exists() && file.isDirectory()) {
     // 列出目錄中的全部内容
         File[] result = file.listFiles() ;
     for (File file2 : result) {
       System.out.println(file2);
     }
   }
  }
}
           

繼續閱讀