Java基礎回顧 : 文件類中的一些常用的方法

File 類提供的是一個與平臺無關的文件操作類,操作的是文件的本身。在File 類執行操作的時候一定要設置一個操作的路徑;


★ . 在File 類裏面提供了以下的構造方法,可以設置路徑:

· 設置一個完整路徑:WEB 開發之中比較常見
public File(String pathname)
· 設置父路徑以及操作的文件名稱:在Android 開發裏面比較常見;

public File(File parent, String child)


★ . 如果要想進行文件的操作,可以使用如下的幾個方法完成:
· 創建一個新的文件:
public boolean createNewFile() throws IOException
· 刪除文件:
public boolean delete()
· 判斷文件是否存在:
public boolean exists()

文件夾也同樣可以。

eg : 一個簡單的文件操作示例

package example;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TestDemo {
	public static void main(String[] args) throws Exception {
		fun1();
	}

	/**
	 * 創建文件和刪除文件
	 * @throws Exception
	 */
	public static void fun1() throws Exception {
		File file = new File("e:\\test.txt");
		if (!file.exists()) {
			System.out.println(file.createNewFile());
		} else {
			file.delete();
		}
	}
}
第一個問題:發現操作中出現了延遲,因爲JAVA 的文件操作要通過JVM 間接進行,所以如果文件操作的過快有可能會出現延遲;
第二個問題:關於操作系統的路徑分隔符問題。在windows 之中使用的路徑分割符:\,而在linux下正好相反:/,在正常情況下,Java 程序都會在windows 下開發,而真正部署的時候會將其部署到linux或其他的操作系統上,所以如果現在將路徑的分割符寫固定了,那麼在項目發佈時就有可能出現錯誤。
爲了解決這樣的問題,在Java 裏面提供了一個路徑分割符的概念:
public static final String separator
正常來講final修飾的屬性應該是大寫字母,但是這些是Java 最早開發時所帶來的遺留問題。


★ . 以上的代碼是直接在根路徑下創建的文件,那麼如果說現在創建的文件有目錄呢?
如果要創建目錄可以使用如下的方法:
public boolean mkdirs()
有些時候有可能目錄還存在着呢,那麼在進行目錄的創建之前,至少需要做一個判斷,判斷目錄是否存在,使用如下方法:
public File getParentFile()
表示取得當前文件或文件夾的父目錄。

eg : 

/**
 * 創建和刪除帶有父路徑的文件
 * @throws Exception
 */
public static void fun2() throws Exception {
	File file = new File("e:" + File.separator + "demo" + File.separator
			+ "example" + File.separator + "test.txt");
	if(!file.getParentFile().exists()) {
		file.getParentFile().mkdirs();
	}
	if (!file.exists()) {
		System.out.println(file.createNewFile());
	} else {
		file.delete();
	}
}


★ . 那麼除了進行文件或文件夾的創建之外,也可以利用 File 類取得文件夾之中的內容。
取得文件夾的內容
· 判斷路徑是否是文件夾:
public boolean isDirectory()
· 列出目錄中的全部內容
public File[] listFiles()

eg : 

/**
	 * 列出文件夾下的所有子文件夾或文件
	 * @throws Exception
	 */
	public static void fun3() throws Exception {
		File file = new File("d:"+File.separator+"Program Files");
		if(file.exists() && file.isDirectory()) {
			File files[] = file.listFiles();
			for(File f : files){
				System.out.println(f);
			}
		}
	}


★ . 除了以上的基本操作之外,在File 類裏面也定義了一些與文件本身信息有關的操作方法:
· 取得文件大小:
public long length()
· 取得文件的最後一次修改日期:
public long lastModified()
eg :

/**
 * 獲取文件的大小和最後修改時間
 * @throws Exception
 */
public static void fun4() throws Exception {
	
	File file = new File("d:" + File.separator + "cat.jpg" );
	
	//獲取文件大小
	long size = file.length() / (long)1024;
	System.out.println(size + "KB");
	
	//獲取最後修改時間
	long time = file.lastModified();
	SimpleDateFormat slf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
	String t = slf.format(new Date(time));
	System.out.println(t);
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章