1. 程式人生 > >File類的學習總結

File類的學習總結

一.File類的簡介

File類是java.io包中唯一代表磁碟本身的物件。可以通過File類中的方法,實現建立、刪除、重新命名檔案等操作。File類的物件主要是用來獲取檔案本身的一些資訊,如檔案所在的目錄、檔案的長度、檔案的讀寫許可權等。資料流可以將資料寫入到檔案中,檔案也是資料流最常用的資料媒體。

二.檔案的創建於刪除 

通常可以使用以下3種構造方法來建立檔案 :

1.File(String pathname)

該構造方法通過將給定路徑名字串轉換為抽象路徑名來建立一個新File例項。

具體語法如下所示:

new File(String pathname)

pathname是指路徑名稱(包含檔名)。例如:

File f   = new File("d:/txt");

2.File(String parent,String child)

該路徑根據構造方法定一個的父路徑和子路徑字串(包含檔名)建立一個新的File物件。

語法如下:

parent:父類路徑名。例如,D:/或者D:/file

child:子類路徑名。例如,children.txt。

3.File(File f,String child)

該構造方法根據parent的抽象路徑名和child路徑名字串建立一個新的File例項。

 語法如下:

new File(File f,String child)

f:父路徑物件;例如,E:/或者E:/file

child:子路徑字串;例如,children.txt。

注意:在windows平臺中,檔案的路徑名字首由驅動器號和一個“:”組成。如果是絕對路徑名,還可能跟“\\”。

 接下來舉一個例項:建立一個類FileDemo,判斷E盤中是否存在test.txt,若已存在,就將剛建立的物件刪除,若不存在,就建立一個新的檔案。因為E盤中存在此檔案所以輸出“檔案已刪除”。

import java.io.File;
import java.io.IOException;

public class FileDemo {
	public static void main(String []args){
		File f = new File("test.txt");
		if(f.exists()){
			f.delete();
			System.out.println("檔案已刪除");
		}
		else{
			try {
				f.createNewFile();
				System.out.println("檔案已建立");
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

輸出結果:

三. 獲取檔案資訊

在File類中,它提供了很多的方法。下面是一個表格,僅供參考。當然也可以參考API文件;

方法 返回值 說明
getName() String 獲取檔案的名稱
canRead() boolean 判斷檔案是否為可讀的
canWriter() boolean 判斷檔案是否為可被寫入
exits() boolean 判斷檔案是否存在
length() long 判斷檔案的長度(以位元組為單位)
getAbsolutePath() String 獲取檔案的絕對路徑
getParent() String 判斷檔案的父路徑
isFile() boolean 判斷檔案是否存在
isDirectory() boolean 判斷檔案是否為一個目錄
isHidden() boolean 判斷是否為隱藏檔案
lastModified() long 獲取檔案最後修改時間

 下面有個例項:獲取test.txt檔案的檔名、檔案長度、是否可讀、是否為隱藏檔案。

import java.io.File;
import java.io.IOException;

public class FileDemo {
	public static void main(String []args){
		File f = new File("test.txt");
		if(f.exists()){     //判斷檔名是否存在,如果存在
			String filename=f.getName();
			long length=f.length();
			boolean b1=f.canRead();
			boolean h1=f.isHidden();
			System.out.println("輸出檔名"+filename);
			System.out.println("輸出檔案長度"+length);
			System.out.println("輸出檔案是否可讀"+b1);
			System.out.println("輸出檔案是否隱藏"+h1);
		}
		else{
			try {
				f.createNewFile();
				System.out.println("檔案已建立");
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}
}

因為檔案test.txt已經存在,所以會輸出一下結果;

輸出結果: