I/O操作中的文件操作類——File 要把程式所處理的數據在不同的記憶體容器(記憶體或外存)進行傳輸,例如將記憶體的數據寫到外存(某個文件),就要用到I/O技術。Java提供的I/O操作可以把數據保存到多種類型的文件中。 包java.io中定義的大多數類是對數據實施流式操作,但File類例外,它用於處理文 ...
I/O操作中的文件操作類——File
要把程式所處理的數據在不同的記憶體容器(記憶體或外存)進行傳輸,例如將記憶體的數據寫到外存(某個文件),就要用到I/O技術。Java提供的I/O操作可以把數據保存到多種類型的文件中。
包java.io中定義的大多數類是對數據實施流式操作,但File類例外,它用於處理文件和文件系統。也就是說,File類沒有指定數據怎樣從文件讀取或向文件存儲,它僅僅描述了文件本身的屬性。
在java.io包中,File類是唯一一個與文件本身有關的操作類。他定義了一些與平臺無關的方法來操作文件,通過調用File類提供的各種方法,能夠完成創建,刪除文件,重命名文件,判斷文件的讀寫許可權及文件是否存在,設置和查詢文件創建時間,許可權等操作。File類除了對文件操作外,還可以將目錄當做文件進行處理——Java中的目錄當成File對象對待。
想要使用File類進行操作,就必須設置一個要操作文件的路徑。下麵的3個構造方法可以用來生成
file對象。
File(String directoryPath)
File(String directoryPath,String filename)
File(File dirObj,String filename)
“directoryPath”表示的是文件的路徑名,filename是文件名,dirObj是一個指定目錄的File對象。
創建:
mkdir() 在指定位置創建一個單級文件夾。
mkdirs() 在指定位置創建一個多級文件夾。
renameTo(File dest)如果目標文件與源文件是在同一個路徑下,那麼renameTo的作用是重命名, 如果目標文件與源文件不是同一個路徑下,那麼renameTo的作用就是剪切,而且還不能操作文件夾。
刪除:
delete() 刪除文件或者一個空文件夾,不能刪除非空文件夾,馬上刪除文件,返回一個布爾值。
deleteOnExit()jvm退出時刪除文件或者文件夾,用於刪除臨時文件,無返回值。
判斷:
exists() 文件或文件夾是否存在。
isFile() 是否是一個文件,如果不存在,則始終為false。
isDirectory() 是否是一個目錄,如果不存在,則始終為false。
isHidden() 是否是一個隱藏的文件或是否是隱藏的目錄。
isAbsolute() 測試此抽象路徑名是否為絕對路徑名。
boolean canExecute()判斷文件是否可執行
boolean canRead()判斷文件是否可讀
boolean canWrite() 判斷文件是否可寫
獲取:
getName() 獲取文件或文件夾的名稱,不包含上級路徑。
getAbsolutePath()獲取文件的絕對路徑,與文件是否存在沒關係
length() 獲取文件的大小(位元組數),如果文件不存在則返回0,如果是文件夾也返回0。
getParent() 返回此抽象路徑名父目錄的路徑名字元串;如果此路徑名沒有指定父目錄,則返回null。
lastModified()獲取最後一次被修改的時間。
文件夾相關:
static File[] listRoots()列出所有的根目錄(Window中就是所有系統的盤符)
list() 返回目錄下的文件或者目錄名,包含隱藏文件。對於文件這樣操作會返回null。
listFiles() 返回目錄下的文件或者目錄對象(File類實例),包含隱藏文件。對於文件這樣操作會返回null。
list(FilenameFilter filter)返回指定當前目錄中符合過濾條件的子文件或子目錄。對於文件這樣操作會返回null。
listFiles(FilenameFilter filter)返回指定當前目錄中符合過濾條件的子文件或子目錄。對於文件這樣操作會返回null。