Java學習—IO—File(一)
File類是檔案和目錄路徑名的抽象表示形式。
File類中常見的方法:
一、建立檔案。
1、 boolean createNewFile():功能:當且僅當不存在具有此抽象路徑名指定名稱的檔案時,不可分地建立一個新的空檔案。傳回值:如果指定的檔案不存在并成功地建立,則傳回 true;如果指定的檔案已經存在,則傳回 false 。這與輸出流不同,輸出流一旦建立就會建立檔案并将原有檔案覆寫。
2、 static File createTempFile(stringprefix,string suffix):首先注意該方法為static,功能:在預設目錄中建立以prefix為字首,以suffix為字尾名的檔案。傳回值:傳回建立空檔案的抽象路徑名。
3、 static File createTempFile(stringprefix,string suffix,File directory):首先注意該方法為static,功能:在directoryz為指定目錄中建立以prefix為字首,以suffix為字尾名的檔案。傳回值:傳回建立空檔案的抽象路徑名。
4、 boolean
mkdir
()
:建立此抽象路徑名指定的目錄。boolean
mkdirs
()
:建立此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄。
二、删除檔案
1、 booleandelete()功能:删除此抽象路徑名表示的檔案或目錄。傳回值:删除成功傳回true失敗傳回false。
2、 void deleteOnExit()功能:在程式退出時删除指定檔案。
三、判斷檔案(在判斷之前應該首先判斷檔案是否存在)
1、 Boolean canExecute():判斷此抽象路徑名表示的檔案或目錄是否可執行。
2、 Boolean canRead():判斷此抽象路徑名表示的檔案或目錄是否可讀。
3、 int
compareTo
(
File
pathname)
:功
能:按字母順序比較兩個抽象路徑名。傳回值:如果該參數等于此抽象路徑名,則傳回零;如果此抽象路徑名在字母順序上小于該參數,則傳回小于零的值;如果此抽象路徑名在字母順序上大于該參數,則傳回大于零的值
4、 boolean exists():判斷檔案是否存在。
boolean isAbsolute():測試此抽象路徑名是否為絕對路徑名。
boolean isDirectory():測試此抽象路徑名表示的檔案是否是一個目錄。
boolean isFile():測試此抽象路徑名表示的檔案是否是一個标準檔案。
boolean isHidden():測試此抽象路徑名指定的檔案是否是一個隐藏檔案。
四、擷取檔案資訊(方法大部分以get開頭)
1、
File
getAbsoluteFile
()
傳回此抽象路徑名的絕對路徑名形式。
2
、
String
getAbsolutePath
()
傳回此抽象路徑名的絕對路徑名字元串。
3
、
File
getCanonicalFile
()
傳回此抽象路徑名的規範形式。
4
、
String
getName
()
傳回由此抽象路徑名表示的檔案或目錄的名稱。
5、
long
length
()
傳回由此抽象路徑名表示的檔案的長度。
6、
boolean
renameTo
(
File
dest)
重新命名此抽象路徑名表示的檔案。(可以實作類似剪切的功能)
五、檔案清單
1、
String
[]
list
()
傳回一個字元串數組,這些字元串指定此抽象路徑名表示的目錄中的檔案和目錄。
2
、
String
[]
list
(
FilenameFilter
filter)
傳回一個字元串數組,這些字元串指定此抽象路徑名表示的目錄中滿足指定過濾器的檔案和目錄。
3
、
File
[]
listFiles
()
傳回一個抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中的檔案。
4
、
File
[]
listFiles
(
FileFilter
filter)
傳回抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的檔案和目錄。
5
、
File
[]
listFiles
(
FilenameFilter
filter)
傳回抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的檔案和目錄。
示例如下
package com.abin;
import java.io.File;
import java.io.FilenameFilter;
public class FileListDemo {
public static void main(String[] args) {
Filedir_1= new File("E:\\");
listRoot();
listFile(dir_1);
Filedir_2= new File("C:\\Documents andSettings\\Administrator\\My Documents\\My Pictures\\櫻木花道");
//列印出指定目錄下,指定字尾名的檔案名
listFile(dir_2,".jpg");
}
public static void listRoot() {
File[]files= File.listRoots();
for (int i = 0; i < files.length; i++) {
System.out.println(files[i]);
}
}
public static void listFile(File file) {
//注意調用該方法的檔案必須代表檔案夾且必須真實存在
String[]files=file.list();
for (int i = 0; i < files.length; i++) {
System.out.println(files[i]);
}
}
public static void listFile(File dir,final String str) {
String[]files= dir.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(str);
}
});
for (String name : files) {
System.out.println(name);
}
}
}