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);
}
}
}