訪問文件不包含輸入輸出流,這只是創建文件、修改文件名、檢測文件的一些操作。本文主要舉出常用實例,建議瞭解以下官方的JDK對應的版本,需要使用的時候回憶一下在去找相應的函數即可,畢竟那麼多的函數不是人人都能夠記得住的。
1、Java中凡是與輸入輸出有關的類都在Java.iO包下。
2、File是一個類,可有構造器創造其對象。
一、 官方JDK1.8 API:
1、 File的構造函數
File有以下四個構造函數 |
File(File parent, String child)
從父抽象路徑名和子路徑名字符串創建新的 |
File(String pathname)
通過將給定的路徑名字符串轉換爲抽象路徑名來創建新的 |
File(String parent, String child)
從父路徑名字符串和子路徑名字符串創建新的 |
File(URI uri)
通過將給定的 file: URI轉換爲抽象路徑名來創建新的 File實例。 |
2、 File的全部方法
修飾語和類型 | 方法和描述 |
---|---|
boolean |
canExecute()
測試應用程序是否可以執行此抽象路徑名錶示的文件。 |
boolean |
canRead()
測試應用程序是否可以讀取由此抽象路徑名錶示的文件。 |
boolean |
canWrite()
測試應用程序是否可以修改由此抽象路徑名錶示的文件。 |
int |
compareTo(File pathname)
比較兩個抽象的路徑名字典。 |
boolean |
createNewFile()
當且僅當具有該名稱的文件尚不存在時,原子地創建一個由該抽象路徑名命名的新的空文件。 |
static File |
createTempFile(String prefix, String suffix)
在默認臨時文件目錄中創建一個空文件,使用給定的前綴和後綴生成其名稱。 |
static File |
createTempFile(String prefix, String suffix, File directory)
在指定的目錄中創建一個新的空文件,使用給定的前綴和後綴字符串生成其名稱。 |
boolean |
delete()
刪除由此抽象路徑名錶示的文件或目錄。 |
void |
deleteOnExit()
請求在虛擬機終止時刪除由此抽象路徑名錶示的文件或目錄。 |
boolean |
equals(Object obj)
測試此抽象路徑名與給定對象的相等性。 |
boolean |
exists()
測試此抽象路徑名錶示的文件或目錄是否存在。 |
File |
getAbsoluteFile()
返回此抽象路徑名的絕對形式。 |
String |
getAbsolutePath()
返回此抽象路徑名的絕對路徑名字符串。 |
File |
getCanonicalFile()
返回此抽象路徑名的規範形式。 |
String |
getCanonicalPath()
返回此抽象路徑名的規範路徑名字符串。 |
long |
getFreeSpace()
返回分區未分配的字節數 named此抽象路徑名。 |
String |
getName()
返回由此抽象路徑名錶示的文件或目錄的名稱。 |
String |
getParent()
返回此抽象路徑名的父 |
File |
getParentFile()
返回此抽象路徑名的父,或抽象路徑名 |
String |
getPath()
將此抽象路徑名轉換爲路徑名字符串。 |
long |
getTotalSpace()
通過此抽象路徑名返回分區 named的大小。 |
long |
getUsableSpace()
返回上的分區提供給該虛擬機的字節數 named此抽象路徑名。 |
int |
hashCode()
計算此抽象路徑名的哈希碼。 |
boolean |
isAbsolute()
測試這個抽象路徑名是否是絕對的。 |
boolean |
isDirectory()
測試此抽象路徑名錶示的文件是否爲目錄。 |
boolean |
isFile()
測試此抽象路徑名錶示的文件是否爲普通文件。 |
boolean |
isHidden()
測試此抽象路徑名命名的文件是否爲隱藏文件。 |
long |
lastModified()
返回此抽象路徑名錶示的文件上次修改的時間。 |
long |
length()
返回由此抽象路徑名錶示的文件的長度。 |
String[] |
list()
返回一個字符串數組,命名由此抽象路徑名錶示的目錄中的文件和目錄。 |
String[] |
list(FilenameFilter filter)
返回一個字符串數組,命名由此抽象路徑名錶示的目錄中滿足指定過濾器的文件和目錄。 |
File[] |
listFiles()
返回一個抽象路徑名數組,表示由該抽象路徑名錶示的目錄中的文件。 |
File[] |
listFiles(FileFilter filter)
返回一個抽象路徑名數組,表示由此抽象路徑名錶示的滿足指定過濾器的目錄中的文件和目錄。 |
File[] |
listFiles(FilenameFilter filter)
返回一個抽象路徑名數組,表示由此抽象路徑名錶示的滿足指定過濾器的目錄中的文件和目錄。 |
static File[] |
listRoots()
列出可用的文件系統根。 |
boolean |
mkdir()
創建由此抽象路徑名命名的目錄。 |
boolean |
mkdirs()
創建由此抽象路徑名命名的目錄,包括任何必需但不存在的父目錄。 |
boolean |
renameTo(File dest)
重命名由此抽象路徑名錶示的文件。 |
boolean |
setExecutable(boolean executable)
爲此抽象路徑名設置所有者的執行權限的便利方法。 |
boolean |
setExecutable(boolean executable, boolean ownerOnly)
設置該抽象路徑名的所有者或每個人的執行權限。 |
boolean |
setLastModified(long time)
設置由此抽象路徑名命名的文件或目錄的最後修改時間。 |
boolean |
setReadable(boolean readable)
一種方便的方法來設置所有者對此抽象路徑名的讀取權限。 |
boolean |
setReadable(boolean readable, boolean ownerOnly)
設置此抽象路徑名的所有者或每個人的讀取權限。 |
boolean |
setReadOnly()
標記由此抽象路徑名命名的文件或目錄,以便只允許讀取操作。 |
boolean |
setWritable(boolean writable)
一種方便的方法來設置所有者對此抽象路徑名的寫入權限。 |
boolean |
setWritable(boolean writable, boolean ownerOnly)
設置此抽象路徑名的所有者或每個人的寫入權限。 |
Path |
toPath()
返回從此抽象路徑構造的 |
String |
toString()
返回此抽象路徑名的路徑名字符串。 |
URI |
toURI()
構造一個表示此抽象路徑名的 file: URI。 |
URL |
toURL() 已棄用
此方法不會自動轉義URL中非法的字符。 建議在新的代碼轉換的抽象路徑到URL通過先轉換成URI,經由 |
二、 實例
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.UUID;
public class TestFileStream {
private static final String FILE_PATH = "./src/IOStream";
private static String newFileName = UUID.randomUUID().toString() + ".txt";
private static final String FILE_NAME = "HelloWorld.txt";
// 訪問文件名操作
public static void test1() {
File file = new File(FILE_PATH + "/" + FILE_NAME);
File file2 = new File(FILE_PATH + "/" + newFileName);
Boolean isCreate = false;
Boolean isRename = false;
Boolean isDelete = false;
try {
if (!file.exists())
isCreate = file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
isRename = file.renameTo(file2);
isDelete = file.delete(); // false
// isDelete = file2.delete(); // true
System.out.println("成功在" + file2.getPath() + "創建文件:" + file2.getName());
System.out.println("isCreate:"+isCreate);
System.out.println("isRename:"+isRename);
System.out.println("isDelete:"+isDelete);
System.out.println("HashCode:" + file.hashCode());
System.out.println("AbsoluteFile:" + file.getAbsoluteFile());
System.out.println("AbsolutePath:" + file.getAbsolutePath());
System.out.println("Parent:" + file.getParent());
}
// File文件檢測
public static void test2(){
File file = new File(FILE_PATH+ "/"+FILE_NAME);
try {
if (!file.exists())
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(file.length());
System.out.println(file.canWrite());
System.out.println(file.isDirectory());
System.out.println(new Date(file.lastModified()));
System.out.println(file.mkdir());
}
public static void main(String[] args) {
test1();
test2();
}
}