IO(File 递归)
File概述
java.io.File類:文件和目錄路徑名的抽象表示形式。
用來描述電腦中文件,文件夾,以及路徑類
常用的3個和File有關的單詞:
file:文件
directory:文件夾(目錄)
path:路徑
File是一個與系統無關的類
File類的3個重載的構造方法
路徑:
window系統的目錄分隔符是一個\
java中的目錄分隔符是:\\或者/
路徑的分類:
絕對路徑:以盤符開始的路徑
例如:D:\\ase\\20170514\\day10
D:\\Work_EE_266\\day10\\src
相對路徑:相對于當前項目來說,路徑編寫的時候可以省略盤符到項目之間的路徑
D:\\Work_EE_266\\day10-->src
注意:路勁不區分大小寫的
File(File parent, String child)
傳遞路徑,傳遞 File 類型父路徑,字符串類型子路徑
好處:父路徑是 File 類型,父路徑可以直接調用 File 類的方法
File(String parent, String child)
傳遞路徑,傳遞字符串類型父路徑,字符串類型的子路徑
好處:單獨操作父路徑和子路徑,使用起來比較靈活,可以把路徑單獨作為參數傳遞過來
File(String pathname)
傳遞路徑名:可以寫文件夾,也可以寫到一個文件
c:\\abc c:\\abc\\Demo.java
路徑存不存在都可以創建,路徑不區分大小寫
File類的創建和刪除功能
File 類的刪除功能
boolean delete()
刪除文件或者文件夾,在 File 構造方法中給出
刪除成功返回 true,刪除失敗返回 false(不存在,文件夾中有內容)
刪除方法不走回收站,直接從硬盤刪除
刪除有風險,運行需謹慎
File 創建文件夾功能
boolean mkdir() 只能創建單層文件夾
boolean mkdirs() 既能創建單層文件夾,又能創建多層文件夾
創建的路徑也在 File 構造方法中給出
如果文件夾已經存在,不在創建
File 創建文件的功能
boolean createNewFile()
創建的文件路徑和文件名,在 File 構造方法中給出
如果文件已經存在,不在創建返回 false
只能創建文件,不能創建文件夾(看類型,不要看后綴)
創建文件夾的路徑,必須存在
File類的判斷功能
boolean isDirectory()
判斷 File 構造方法中封裝的路徑是不是文件夾
如果是文件夾就返回 true,如果不是文件夾就返回 false
boolean isFile()
判斷 File 構造方法中封裝的路徑是不是文件
boolean exists()
判斷 File 構造方法中封裝路徑是否存在
存在就返回 true,不存在就返回 false
File類的獲取功能
String getParent() 返回 String 對象
File getParentFile() 返回 File 對象
獲取父路徑,返回的是文件末尾的父路徑
long length()
返回路徑中表示的文件的字節數,文件夾沒有大小
String getPath() 將此抽象路徑名轉換為一個路徑名字符串。
和 toString 一樣
String getName()
返回路徑中表示的文件或者文件夾名
獲取路徑中最后部分的名字
File getAbsoluteFile() 返回此抽象路徑名的絕對路徑名形式。
String getAbsolutePath() 返回此抽象路徑名的絕對路徑名字符串。
獲取絕對路徑
遍歷目錄的方法list和listFiles
注意事項:
1.被遍歷的路徑只能是一個目錄
2.被遍歷的目錄必須存在
否則就會拋空指針異常
static File[] listRoots()
獲取系統中所有根目錄
File[] listFiles()
獲取到 File 構造方法中封裝的路徑中的文件和文件夾名(遍歷一個目錄)
返回的是目錄或者文件的全路徑
String[] list()
獲取到 File 構造方法中封裝的路徑中的文件和文件夾名(遍歷一個目錄)
返回的只有名字
遞歸
遞歸:方法自己調用自己
分類:
遞歸分為兩種,直接遞歸和間接遞歸。
直接遞歸稱為方法自身調用自己。間接遞歸可以A方法調用B方法,B方法調用C方法,C方法調用A方法。
注意:
1.遞歸一定要有條件限定,保證遞歸能夠停止下來,否則會發生棧內存溢出。
2.在遞歸中雖然有限定條件,但是遞歸次數不能太多。否則也會發生棧內存溢出。
3.構造方法,禁止遞歸
文件過濾器
文件的過濾器:
需求:遍歷hello文件夾,只獲取文件夾中的.java結尾的文件
c:\\hello
c:\\hello\\demo.txt
c:\\hello\\Hello.java
在File類中listFiles()方法是遍歷文件夾的方法
有兩個和 listFiles重載的方法,參數傳遞的就是過濾器
File[] listFiles(FileFilter filter)
File[] listFiles(FilenameFilter filter)
返回抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的文件和目錄。
發現方法的參數FileFilter和FilenameFilter是接口
所有我們需要自己定義接口的實現類,重寫接口中的方法accept,實現過濾功能
斷點調試
debug斷點調試
f6:逐行執行
f5:進入到方法中
f7:結束方法
f8:跳到下一個斷點
watch:捕獲
轉載于:https://www.cnblogs.com/caigq/p/7049064.html
總結
以上是生活随笔為你收集整理的IO(File 递归)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [原创]OpenvSwitch安装
- 下一篇: 上拉数据加载