JavaIO基礎內容 IO技術概述 Output 把記憶體中的數據存儲到持久化設備上這個動作稱為輸出(寫)Output操作 Input 把持久設備上的數據讀取到記憶體中的這個動作稱為輸入(讀)Input操作 上面兩種操作成為IO操作 File類 File類是文件和目錄路徑名的抽象表示形式,Java中把文 ...
JavaIO基礎內容
IO技術概述
Output 把記憶體中的數據存儲到持久化設備上這個動作稱為輸出(寫)Output操作
Input 把持久設備上的數據讀取到記憶體中的這個動作稱為輸入(讀)Input操作
上面兩種操作成為IO操作
File類
File類是文件和目錄路徑名的抽象表示形式,Java中把文件或者目錄(文件夾)都封裝成File對象.
當new一個File類的時,並不是去判斷是否存在,只是創建出一個文件對象用來調用其內置方法
File類的構造方法
File(String pathname) // 項目全路徑
File(String parent,String childen) // 父路徑和子路徑, 更加具有靈活性
File(File parent, String child) // 父路徑用File類表示,這樣可以調用File內的內置方法
File類的主要函數
mkdir() : 創建文件夾 如果存在這樣的文件夾,就不創建了
mkdirs() : 創建文件夾,如果父文件夾不存在,會幫你創建出來
delete() : 刪除文件或者文件夾
createNewFile() : 創建文件 如果存在這樣的文件,就不創建了
getName() : 返迴路徑中表示的文件或者文件夾名
getAbsolutePath() : 獲取絕對路徑,返回String對象
getAbsoluteFile() : 獲取絕對路徑,返回File對象
exists() : 判斷File構造方法中封裝路徑是否存在
isDirectory() : 判斷File構造方法中封裝的路徑是不是文件夾
isFile() : 判斷File構造方法中封裝的路徑是不是文件
String[] list() : 獲取到File構造方法中封裝的路徑中的文件名和文件夾名
File[] listFiles() : 獲取到,File構造方法中封裝的路徑中的文件和文件夾 返回的是FIle數組
File[] listRoots() : 列出可用的文件系統根 , windows下即盤符
文件過濾 查找包含指定文件名的文件
遞歸遍歷目錄的方法
public class FileDemo { public static void main(String[] args) { File dir = new File("d:\\eclipse"); getAllDir(dir); } /* * 定義方法,實現目錄的全遍歷 */ public static void getAllDir(File dir){ System.out.println(dir); //調用方法listFiles()對目錄,dir進行遍歷 File[] fileArr = dir.listFiles(); for(File f : fileArr){ //判斷變數f表示的路徑是不是文件夾 if(f.isDirectory()){ //是一個目錄,就要去遍歷這個目錄 //本方法,getAllDir,就是給個目錄去遍歷 //繼續調用getAllDir,傳遞他目錄 getAllDir(f); }else{ System.out.println(f); } } } }
文件過濾器
過濾一個目錄下的指定擴展名的文件,或者包含某些關鍵字的文件夾
public String[] list(FilenameFilter filter)
public File[] listFiles(FileFilter filter)
實現過濾的時候需要自行編寫過濾類並且實現 FilenameFilter / FIleFilter
public class MyFilter implements FileFilter{
public boolean accept(File pathname) {
/*
* pathname 接受到的也是文件的全路徑
* c:\\demo\\1.txt
* 對路徑進行判斷,如果是java文件,返回true,不是java文件,返回false
* 文件的尾碼結尾是.java
*/
//String name = pathname.getName();
return pathname.getName().endsWith(".java");
}
}
- 使用
File[] fileArr = file.listFiles(new MyFilter());