本帖最后由 創世魂 于 2018-12-25 09:52 編輯
文件操作實例講解(建議依次仔細觀看)
java基本類說明:在安卓中有兩種類,一個是基于java的,例如:文本操作屬于“java.lang.String” (嚴格來說這個叫包名)
另外一種是安卓類,例如:android.***** (嚴格來說這個也叫包名)
作者:創世魂
● 文件操作準備工作
本類需要設計一個如下圖所示的APP界面。 從上到下依次是“編輯框1”,“編輯框2”,“按鈕1”,“圖片框1”
如下圖: 我們右鍵“窗口”選擇“添加虛擬方法”,打開“啟動類”窗口的所有的“窗口事件”
如下圖: 打開后選擇“通知_被創建”,點擊“添加”。
如下圖: 點擊后出現下圖的“通知_被創建”方法。 1.創建一個“文件名類”的局部變量(名稱隨意),注意參考屬性不要忘記。 2.利用“取外部存儲空間根目錄”的方法,獲取到存儲卡的“文件名類”,并且賦值給定義的“文件名類”變量。 3.用定義的“變量”的取文件名方法,把“文件名”類轉換成“文本型”的路徑形式,這樣就可以取出“存儲卡” 存儲用戶數據的路徑(也就是打開手機文件管理器的默認路徑),把取出來的路徑放到“編輯框”顯示出來,方便接下來的操作。 注意:建議“取文件名”結尾加上一個“/”,默認取出的“路徑”是沒有這個“/”的。 再次注意: 軟件通常操作的“目錄”均是“外部存儲空間根目錄”。 如果需要操作安卓“內部數據”目錄,則手機需要獲取“Root權限”才可以操作。
一、文件讀寫操作類
● 創建子目錄
如下圖: 打開幫助內容,可以看到“創建子目錄”有一個“目錄名”參數和一個“邏輯”返回值。
如下圖: 直接將“編輯框”的內容寫入“參數”,用“如果”命令判斷是否創建成功。 注意:如果目標“目錄”存在也會返回假。
如下圖: 調試運行后,我們在“數據路徑”后輸入要創建的“目錄名”,“左圖”創建成功,“右圖”重復第二次創建“返回假”。
如下圖: 打開手機“文件管理器”,也可以看到我們創建的“目錄”。
● 讀入文本文件方法
如下圖: 打開幫助內容可以看到有“兩個”參數和一個“文本”返回值。 注意:提前準備一個txt“文本文件”,放入“火山軟件”文件夾內。
如下圖: 直接讀取“編輯框1”作為“參數1”,參數二里面直接放文件對應的“文編編碼”即可,最后讓“文本內容”賦值給“編輯框2”顯示即可。 因我放的"文件編碼"是"GBK"的,所以這里我用的是"GBK編碼",安卓通常情況下使用的是“UTF-8”編碼。
如下圖: 運行后“編輯框2”成功讀取提前放置的“文本文件”。
● 讀入文本文件行方法
如下圖: 打開幫助內容,可以看到“讀入文本文件行”有兩個和“讀入文本文件”一樣參數,不同之處就是這里的返回值是“文本數組” 從名稱可以看出它返回的是“文本文件”內容行的文本數組類。 注意:可以提前在“文本文件”內多輸入幾行文本。
如下圖: 定義“兩個”局部變量,保留“讀入文本文件”代碼,放下對比。 將“讀入文本文件行”方法直接賦值給定義的“文本數組變量”。 用定義的變量名稱的“取成員數”方法,取出數組數量然后賦值給“成員數”變量,最后“到文本”轉換提供給信息框顯示。
如下圖: 調試運行后效果如下,成功的判斷“文本文件”內的行數。
● 讀入文件方法
如下圖: 打開幫助內容可以看到,該方法只有一個“文本型”的文件名參數和一個“字節數組”返回值。 備注:提前準備一張“圖片”放到“火山軟件”文件夾內。
如下圖: 定義一個“字節”數組變量,然后“讀入文件”方法給變量賦值,最后使用“圖片框”的“置圖片數據”的方法加載“字節變量”到“圖片框1”
如下圖: 編譯運行后,成功取出了提前放好的一張“png”圖片。
● 復制文件方法
如下圖: 打開幫助內容可以看到“復制文件”有兩個“文本參數”和一個是否覆蓋的“邏輯參數”,復制成功返回“真”,失敗返回“假”
如下圖: 參數“1和2”直接填寫“編輯框1和2”的內容,“參數3”這里就填寫“真”(根據實際需求正確填寫)
如下圖: 運行后在“編輯框2”也放上存儲卡“路徑”,并且輸入上對應的目錄名和“復制后文件名”。 “左圖:”提示復制成功。“右圖:”文件管理器內也成功顯示。
● 刪除文件方法
如下圖: 打開幫助內容可以看到“刪除文件”方法只有一個“文本參數”和一個“邏輯返回值”。 “注意:”紅框內的提示,如果要“刪除目錄”,必須保證“目錄”內是“空的”。
如下圖: 代碼編寫也很簡單,直接把“編輯框1”放到“參數1”內,運行后在“用戶數據目錄”的基礎上增加你想要刪除的“目錄”或者“文件名”即可。
如下圖: 運行后我們可以刪除掉,剛才的“復制版文本文件”,“左圖”提示刪除成功,“右圖”文件管理器也成功消失。
如下圖: 如果我們刪除“火山軟件”目錄,則會提示“刪除失敗”,因為“目錄內存在內容”。
● 文件是否存在方法
如下圖: 打開幫助內容我們可以看到有一個“文本參數”和一個“邏輯”返回值。可以判斷“文件”或者“目錄”是否存在。
如下圖: 代碼編寫,直接將“編輯框1”的內容放到“參數1”中,然后用“如果”命令判斷該方法返回的“邏輯值”,如果等于“真”則提示“存在”,否則相反。
如下圖: 左圖:判斷“火山軟件”目錄會提示“存在”。右圖:我們隨便輸入一個名字,就會提示“不存在”。
● 寫出文本文件方法
如下圖: 打開幫助內容可以看到“寫出文本文件”有兩個“文本參數”,一個是否覆蓋的“邏輯參數”和一個“文本編碼參數”,最后也是返回的“邏輯值”。
如下圖: 代碼編寫非常簡單,直接“編輯框1和2”的內容寫到“參數1和2”,覆蓋填寫“真”。 要注意的是,最后的“編碼”建議填寫“UTF8編碼”。 還有,必須保證“目錄正確”并且“目錄存在”才能成功“寫出文本文件”。
如下圖: 左圖:路徑正確“成功寫出”。右圖:輸入了一個“不存在”的目錄,會“無法保存”。
如下圖: 打開文件管理器就可以看到我們新寫的文件了。
● 寫出文本文件行方法
如下圖: 打開幫助我們可以看到該方法和“寫出文本文件”一樣,有四個參數,不同之處就是這里保存的是“文本數組類”。
如下圖: 我們這里可以用“讀入文本文件行”的方法,來讀取一個“文件數組類”的變量。 然后將定義的變量填入“寫出文本文件行”的“參數2”中(這里的編碼,必須和上面的一致)。 最后用“如果”來判斷“寫出文本文件”的“返回值”即可。
如下圖: 左圖:提示成功。右圖:文件管理器也成功顯示。
● 寫出文件方法
如下圖: 打開幫助內容可以看到“寫出文件”方法只有“三個參數”和一個“邏輯返回值”。
如下圖: 定義一個“字節數組”變量,使用“文本到字節數組”方法,將“編輯框2”的內容轉換賦值給定義的“字節數組變量”。 “寫出文件”參數一直接依然還是“編輯框1”的內容,參數二放入“字節數組變量”,“參數三”根據實際需求填寫。
如下圖: 左圖:執行后“保存”成功。右圖:文件管理器內也看到了對應的文件。
● 重命名文件方法
如下圖: 打開幫助內容可以看到“重命名”有“兩個參數”,并且也同樣支持重命名“文件和目錄”。
如下圖: 代碼編寫,直接將“編輯框1”和“編輯框2”的內容填入參數即可,實際應用過程中,填入自己需要“重命名”的文件或者目錄的路徑。
如下圖: 左圖:將“火山軟件”目錄,成功的重命名為“火山軟件開發平臺” 右圖:文件管理器內也發生改變,證明重名成功。
二、文件名類
本類所有方法的調用,必須用“文件名類.方法名”或者定義一個類型為“文件名類”的變量,然后用“變量名.方法名”的形式調用。
● 創建方法
如下圖: 打開幫助內容,可以看到"創建"有一個"文件名"參數和一個"文件名類"的對象返回值。 顧名思義,就是創建指定文件名的文件對象。
如下圖: 可以定義一個“文件名類變量”,然后用“文件名類.創建()”方法給變量賦值,參數直接寫“編輯框1”的內容。 可以利用定義的“文件名類變量”的“取文件名”方法取出“文件名類”對象中存儲的“文件”或“目錄”的路徑。 注意:定義的“文件名類變量”一定要設置“參考”屬性。 注意黃色箭頭:用“變量類”訪問類方法的時候,“取文件名”的“參數1文件名類”不用寫。
如下圖: 運行后我們輸入“火山軟件開發平臺”這個目錄,執行后成功的創建“文件類”,并且也成功的利用“取文件名”方法將創建的其取出。 注意:輸入的目錄內,有結束的“路徑符號",但是創建“文件名類”后重新取出后“路徑符號”會消失。
● 創建2方法
如下圖: 打開幫助內容,可以看到"創建2"有兩個“文本型參數”和一個“文件類”的返回值。 顧名思義就是創建一個帶“父目錄名”的“文件類”對象。
如下圖: “編輯框1”窗口創建的時候取的是“存儲數據”路徑,所以它可以當父路徑,直接把“編輯框1”寫入“參數1”即可。 "參數2"直接寫"編輯框2"的內容即可。
如下圖: 運行后在“編輯框2”輸入一個“文件名”,執行后成功將“父目錄”和“文件名”合并了起來。
● 創建3方法
如下圖: 打開幫助內容,該方法和“創建2”沒什么區別,唯一不同之處就是,參數一變成了“文件類”對象。
如下圖: 創建“兩個”文件名類的變量,其中一個命名為“父目錄對象”,另外一個依然可以命名“文件名類變量” 利用“創建”方法,創建“編輯框1”的內容為“文件名類”并且賦值給“父目錄對象”的變量。 隨后將“父目錄對象”填入“創建3”的“參數1”即可,“參數2”依然寫“編輯框2”的內容。
如下圖: 運行后填寫“編輯框2”的文件名,成功將兩個組合起來。
● 創建父目錄文件對象方法
如下圖: 打開幫助可以看到參數名和返回值都是“文件名類”對象,如果沒有“父目錄”會返回“空對象”。
如下圖: 代碼編寫也很簡單,我們只需要在“創建3”的基礎上稍作修改即可。
如下圖: 運行后成功取出了“外部存儲空間”的父目錄。
● 創建絕對路徑文件對象方法
如下圖: 打開幫助內容,可以看到該方法的“參數”和“返回值”都是“文件名類”。 顧名思義就是取絕對路徑的“文件名類”對象
如下圖: 我們用“創建”方法,創建一個以“編輯框2”內容為參數的文件名類,并且賦值給定義的“文件名類變量” 然后用“創建絕對路徑文件對象”的方法,將“編輯框2”的“相對路徑”轉換成“絕對路徑”的文件名類變量。 最后用“取文件名”方法,取出來路徑文本看一下效果。
如下圖: 運行后,我們在“編輯框2”,輸入“相對路徑”執行后會自動處理成“絕對路徑”。
● 創建絕對路徑文件對象2方法
如下圖: 打開幫助內容我們可以看到本方法和“創建絕對路徑文件對象”沒什么區別,不同之處就是本方法不會對“相對路徑”前面的兩個小數點就行處理。
如下圖: 代碼編寫也和“創建絕對路徑文件對象”一模一樣。
如下圖: 調試運行后,我們輸入一個“相對路徑”可以看到本方法并沒有處理掉兩個小數點。
● 創建臨時文件方法
如下圖: 打開幫助內容,可以看到本方法有“三個參數”和一個“文件名類”的返回值,并且“參數2和3”都有默認值。
如下圖: 代碼編寫如下圖,依然是定義一個“文件名類”變量,把“編輯框2”的內容放入“參數1”,“參數2和3”因有默認值所以可以直接省略不寫。 最后我們可以用“取文件名”的方法取出“臨時文件”的目錄。
如下圖: 調試運行后,可以在“編輯框2”輸入一個“文件名”,取出完整路徑后可以看到,后綴也是默認的“tmp”。 并且在“文件名”和“后綴”之間有一個10位數的“時間戳”。
● 創建目錄方法
如下圖: 打開幫助內容,可以看到它有一個“文件名類”參數和一個“邏輯”返回值。 注意黃框內容,如果“父目錄不存在”或者“目錄已經存在”都會返回“假”。
如下圖: 定義一個“目錄對象”的文件類變量,然后用“創建”方法,創建“編輯框1”的內容給定義的變量。
如下圖: 調試運行后,我們輸入要創建的"目錄名","左圖"創建成功,"右圖"重復第二次創建會提示失敗。
如下圖: 打開手機"文件管理器",也可以看到我們創建的"目錄"。
● 創建目錄內容文件列表方法
如下圖: 打開幫助內容,可以看到本方法只有一個“文件名類”參數和一個“文件名類數組”返回值。 顧名思義就是返回指定目錄內的“子目錄”和“文件名”數組。
如下圖: 代碼編寫也很簡單,定義三個變量,依然是用“創建”方法去創建文件對象,賦值給變量。 然后用該方法就可以取出“文件名類數組”。 最后利用“取數組成員數”的方法取數量,最后“到文本”顯示結果。
如下圖: 左圖:我們在“666”目錄,隨便放“兩個”文件夾和“三個”文件。 右圖:成功的取出“數量5”。
● 創建新文件方法
如下圖: 打開幫助內容,可以看到"創建新文件"有一個"文件名類"參數和一個"邏輯"返回值。 注意:黃色的框內提示,已經存在返回假。
如下圖: 代碼編寫依然是創建“文件名類”變量,然后用“創建”方法賦值。 最后使用本方法進行文件創建。
如下圖: 左圖:我們在“666”目錄內創建一個“777”的文本文件,提示創建成功。右圖:重復創建則會返回“失敗”。
如下圖: 打開手機"文件管理器",可以看到文件成功創建。
● 創建整個目錄方法
如下圖: 打開幫助內容,可以看到本方法也是一個“文件名類”參數和一個“邏輯”返回值。 它和“創建目錄”不同之處在于,它可以直接創建“多層”目錄,創建的“目標目錄”的“父目錄”如果不存在會“自動創建”。 注意:如果目標"目錄"存在會返回假。
如下圖: 代碼編寫也非常簡單,和“創建新文件”方法無差別。
如下圖: 調試運行后,我們在“編輯框”輸入自己要創建的“多層”目錄,執行會全部創建成功。
如下圖: 打開手機"文件管理器",可以看到輸入的“所有目錄”全部自動創建。
● 路徑比較方法
如下圖: 打開幫助內容,可以看到"路徑比較"有兩個個"文件名類"參數和一個"整數"返回值。 顧名思義就是比較“兩個路徑”是否相等。 注意:幫助文檔內的返回值書寫“有錯誤”。 路徑一大于路徑二:結果“大于0”。 路徑一小于路徑二:結果"小于0"。 路徑一等于路徑二:結果"等于0"。
如下圖: 代碼編寫也很簡單,定義兩個“文件名類”變量和一個“整數”的結果變量。 隨后用創建方法分別將兩個“編輯框”的內容創建“文件對象”,并且賦值給“文件名類變量”。 最后用“路徑比較”方法對比即可。
如下圖: 運行后輸入路徑內容,比對結果如下。
● 取父目錄方法
如下圖: 打開幫助內容,可以看到本方法有一個“文件名類”參數和一個“文本”返回值。 顧名思義就是取出指定“文件對象”的“父目錄”。
如下圖: 代碼編寫很簡單,創建一個“文件類對象”,用“創建”方法創建對象。 最后用“取父目錄”就可以取出來“父目錄路徑”。
運行后如下圖: 左圖:成功取出“目錄”的“父目錄路徑”。 右圖:成功取出"文件"的"父目錄路徑"。
● 取絕對路徑方法
如下圖: 打開幫助內容,可以看到本方法有一個"文件名類"參數和一個"文本"返回值。 本方法和“創建絕對路徑文件對象”不同之處就是,本方法直接返回“文本”。
代碼編寫如下圖: 依然是需要“創建”方法,創建“文件名類”的變量,最后用“取絕對路徑”方法取出即可。
如下圖: 我們在“編輯框1”輸入一個“相對路徑”,會自動處理成“絕對路徑”。
● 取絕對路徑2方法
如下圖: 打開幫助內容,可以看到本方法和“取絕對路徑”唯一的區別就是,本方法不會對“相對路徑”的兩個小數點進行處理。
如下圖: 代碼編寫和“取絕對路徑”沒有任何區別。
如下圖: 輸入一個“相對路徑”可以看到并沒有對小數點進行處理。
● 取可用空間尺寸方法
如下圖: 打開幫助內容,可以看到本方法有一個“文件名類參數”和一個“長整數”的返回值,返回字節長度。
代碼編寫如下圖: 非常簡單,將定義的“文件名類”變量,直接調用“取可用空間尺寸”方法即可。 最后“到文本”賦值給“編輯框2”顯示出來。
如下圖: 調試運行后,我們可以取出“外部存儲數據根目錄”還有這么多"字節"可以用。
● 取目錄內容列表方法
如下圖: 打開幫助內容,可以看到本方法和“創建目錄內容文件列表”不同之處在于,本方法直接返回“文本型”數組。
如下圖: 定義兩個變量,創建“文件名類”對象后,直接調用本方法就可以取出“目錄文件數組” 最后“取數組成員數”,然后“到文本”賦值給“編輯框2”顯示出來。
如下圖: 執行后左圖顯示“4個”數組成員,右圖的“文件管理器”也是“4個”,證明取出的是正確的。
● 取全部空間尺寸方法
如下圖: 顧名思義就是取出所有空間的尺寸,返回值的單位依然是字節。
如下圖: 依然是創建“文件名類”變量,隨后用本方法直接取尺寸,最后轉換文本賦值給“編輯框2”顯示。
如下圖: 調試運行后,成功取出“取外部存儲空間根目錄”總共有這么多字節空間。
● 取剩余空間尺寸方法
如下圖: 本方法和“取全部空間尺寸”沒什么區別,顧名思義就是“取出剩余空間”尺寸。
如下圖: 代碼編寫和“取全部空間尺寸”一樣,直接套用下來即可。
如下圖: 運行后可以看到成功取出“取外部存儲空間根目錄”還有這么多字節空間可以用。
● 取文件尺寸方法
如下圖: 打開幫助內容,可以看到有一個“文件名類”參數和一個“長整數”返回值。 注意:只能“取文件尺寸”,目錄取不出來。
代碼如下圖: 定義“文件名類”變量,然后用本方法直接“取文件尺寸”即可。
如下圖: 成功取出“666”文件夾內的“1.png”圖片尺寸。
● 取文件名方法
如下圖: 可以看到一個“文件名類”參數和“文本型”的返回值。 顧名思義就是取出創建“文件對象”時候的完整“文件路徑”。
如下圖: 代碼編寫也很簡單,和前面的命令模式基本一樣,套下來即可,最后賦值給“編輯框2”顯示。
如下圖: 左圖:取目錄對象的效果(取出來的路徑沒有結束的“路徑符”)。 右圖:取文件對象的效果。
● 取無路徑文件名方法
如下圖: 幫助內容依然顯示一個“文件名類”參數和一個“文本返回值”。 顧名思義就是取出“目錄名”和“文件名”,不包括前面的路徑部分。
如下圖: 定義“文件名類”變量,創建“文件名類”后賦值給“變量”,最后用本方法“取無路徑文件名”,賦值給“編輯框2”顯示。
如下圖: 左圖:“取目錄名”效果。 右圖:“取文件名”效果。
● 取系統所有根目錄方法
如下圖: 打開幫助內容,可以看到它之后一個“文件名類”的“數組”返回值。 顧名思義就是取出所有的“根目錄”。
如下圖: 創建“文件類數組”變量,然后用本方法為“數組變量”賦值。 最后“取數組成員數”,“到文本”轉換,然后用“提示信息框”顯示出來看效果。
如下圖: 運行后,因安卓系統下只有一個根目錄,所以“顯示1”。
● 取最后修改時間方法
如下圖: 打開幫助內容,有一個“文件名類”參數和一個“長整數”的返回值。 返回的是一個13位數的時間戳,這個時間戳就是從1970年1月1日0點,到指定時間的毫秒數。
代碼如下圖: 依然是將“編輯框1”的內容創建一個“文件類變量”,然后賦值給定義的“變量”。 然后用“取最后修改時間”方法就可以取出修改13位毫秒時間戳。
如下圖: 左圖:成功取出一個“文件”的最后修改時間。 右圖:成功取出一個“目錄”的最后修改時間。
● 刪除方法
如下圖: 打開幫助內容,參數和上面的方法一樣都是“文件名類”,不同之處就是它的返回值是“邏輯型”。 要注意的是,如果刪除目錄,必須保證目錄內是空的。
如下圖: 本方法也需要創建“文件類變量”,然后直接使用“刪除”方法即可,最后用“如果”進行判斷。
如下圖: 左圖:刪除文件“1.txt”成功。 右圖:因為“666”目錄內還有其它文件,所以目錄“刪除失敗”。
● 是否被隱藏方法
如下圖: 顧名思義,就是判斷一個“文件類”對象是否是“隱藏文件”或者“目錄” 應用場景:例如你用某個方法獲取到一個“路徑”,但是不知道這個“路徑”的“文件對象”是不是“隱藏”狀態。 這時候你就可以用“本方法判斷”。
如下圖: 因為是寫例子,所以使用本方法需要提前創建一個"文件類變量",然后直接使用"是否被隱藏"方法,最后用"如果"進行判斷。
如下圖: 左圖:我們手動輸入一個“隱藏的文件名”,就會自動判斷出它是隱藏的文件。 右圖:我們手動輸入一個“正常的文件名”,就會可以判斷出他不是隱藏文件。 注意:本方法對“隱藏的目錄”判斷同樣有效,并且無論是“隱藏的文件”還是“隱藏的目錄”,“目錄名”和“文件名”前面會有一個“小數點”作為標識(紅圈內)。
● 是否存在方法
如下圖: 顧名思義就是判斷指定的“文件對象”是否存在,存在返回真,不存在返回“假”。 目錄和文件都可以進行判斷。
如下圖: 創建"文件類變量",然后直接使用"是否存在"方法即可,最后用"如果"進行判斷。
如下圖: 左圖:執行后“目錄存在”。 右圖:隨便輸入一個不存在文件,就會提示“不存在”。
● 是否可讀取方法
如下圖: 顧名思義,就是判斷一個“文件名類”是否可被當前程序讀取使用,如果沒有操作權限會返回“假”,相反返回“真”。 什么時候“返回假”? 例如:你操作的目錄是安卓內部收據目錄,并且還沒有獲取root權限,肯定是返回“假”。 如果指定的“文件對象”已經被其他軟件占用,這個時候也會返回“假”。 如果目標文件不存在,也返回“假”。
如下圖: 創建"文件類變量",然后直接使用"是否可讀取"方法即可,最后用"如果"進行判斷。
如下圖: 運行后,“外部存儲數據目錄”可以被讀取,所以返回“可以”。
● 是否可寫入方法
如下圖: 顧名思義就是判斷一個文件對象是否有“可寫入”的權限,有返回“真”,沒有返回“假”。 返回假的情況同“是否可讀取”
如下圖: 創建“文件類變量”,然后直接使用“是否可寫入”方法即可,最后用“如果”進行判斷。
如下圖: “1.png”存在并且有“寫入權限”,所以這里返回“可以”。
● 是否可執行方法
如下圖: 顧名思義就是判斷一個文件對象是否有“可執行”的權限,有返回“真”,沒有返回“假”。 返回假的情況同“是否可讀取”
如下圖: 創建“文件類變量”,然后直接使用“是否可執行”方法即可,最后用“如果”進行判斷。
如下圖: 左圖:“666”目錄存在且可以被執行,所以返回“可以執行”。 右圖:隨便輸入了一個“不存在”的目錄,會返回“不可以”。
● 是否為絕對路徑方法
如下圖: 顧名思義就是判斷一個“文件對象”是否為“絕對路徑”,如果是"真",不是返回"假"。 注意黃色框內提示:只要不是“/”起始的路徑,都不是絕對路徑。
如下圖: 創建“文件類變量”,然后直接使用“是否為絕對路徑”方法即可,最后用“如果”進行判斷。
如下圖: 左圖:帶“/”路徑符的直接判斷“是”。 右圖:只要刪除了“/”路徑符號就會判斷“不是”。
● 是否為目錄方法
如下圖: 顧名思義就是判斷一個文件對象“是否為目錄”,如果是目錄返回“真”,不是返回“假”。 目標目錄不存在也會“返回假”。
如下圖: 創建"文件類變量",然后直接使用"是否為目錄"方法即可,最后用"如果"進行判斷。
如下圖: 左圖:是目錄“返回真”。 右圖:輸入了一個文件則會“返回假”
● 是否為文件方法
如下圖: 本方法和“是否為目錄”的功能正好相反,它是用來判斷目標對象是否為“文件”,如果是文件返回"真",不是返回"假"。 目標文件不存在也會"返回假"。
如下圖: 創建"文件類變量",然后直接使用"是否為文件"方法即可,最后可以用"如果"進行判斷。
如下圖: 左圖:目標存在,并且是文件“返回真”。 右圖:雖然輸入了一個文件,但是目標不存在,依然會返回“不是文件”。
● 置可讀狀態方法
如下圖: 本方法有三個參數。 參數一:依然是“文件名類”。 參數二:是否可讀,意思就是說,設置指定“文件對象”是否可讀狀態。“真”為可讀,“假”為不可讀。 參數三:“真”設置給當前用戶,“假”設置給所有用戶。 注意:“黃色框”內提示,因國內安卓系統環境復雜,并不保證每一臺手機都可以設置生效(關于權限的設置不再贅述)。
如下圖: 創建"文件類變量",然后直接使用"置可讀狀態"方法即可,最后可以用"如果"進行判斷。 注意:這里采用的是“動態調用”(變量調用的模式),所以“參數一”的“文件名類”可以省略,直接從“參數二”開始寫即可。
● 置可寫狀態方法
如下圖: 本方法依然是三個參數。 本方法和“置可讀狀態”一樣,設置指定"文件對象"是否可寫入數據。 失敗原因:同“置可讀狀態”。
如下圖: 代碼編寫和“置可讀狀態”一樣。
● 置可執行狀態方法
如下圖: 本方法和"置可讀狀態"一樣,設置指定"文件對象"是否可執行。 失敗原因:同"置可讀狀態"。
如下圖: 創建"文件名類",然后用直接調用本方法,最后用"如果"判斷返回值即可。。
● 置為只讀方法
如下圖: 本方法和"置可讀狀態"一樣,設置指定"文件對象"只可以讀取數據,不可寫入數據。 失敗原因:同"置可讀狀態"。
如下圖: 創建“文件名類”,然后用直接調用“本方法”,最后用“如果”判斷返回值即可。。
● 置最后修改時間方法
如下圖: 打開幫助可以看到有兩個參數,設置成功返回“真”,失敗返回“假”。 參數一:還是“文件名類”。 參數二:13位數的時間戳。
如下圖: 創建“文件名類”,賦值給“文件名類變量”。 用“取當前毫秒時間”方法,可以取出當前時間的時間戳,取出后賦值給定義的“長整數”變量。 最后把“當前時間”變量,放入本方法內,最后用“如果”判斷返回值即可。 執行成功后,可以用“取最后修改時間”取出時間戳顯示出來。
運行后效果如下圖:
● 重命名方法
如下圖: 可以看到有兩個“文件名類”參數,成功返回“真”,失敗返回“假” 本方法也可用作“移動文件”到“另外一個目錄”,并且還可以進行重名操作。 如果要“移動文件”,必須保證“目標目錄”存在。
如下圖: 本方法需要創建兩個“文件名類”,一個“源文件”,一個是“目標文件”。 然后將兩個變量依次放入“重命名”方法即可。
如下圖: 左圖:把“666”目錄內“1.png”成功移動并且重命名到了“外部存儲空間根目錄” 右圖:可以在“文件管理器”內看到移動后的“新文件名”。
三、文件訪問類
● 首先需要了解一下“狀態類”和“文件打開方式”
“狀態類”如下圖: 打開“狀態類”幫助內容,可以看到它有“四個”常量,每個常量代表不同的意思,具體看紅色箭頭指的位置說明。 常量調用方式“類名.”+“常量名”即可。
“文件打開方式”如下圖: 本類也有“四個常量”,具體作用和說明看圖上的文字說明。
● 創建方法
如下圖: 打開幫助內容,可以看到它有“兩個參數”,其中一個參數正是上面提到的“文件打開方式”。 本方法的返回值則是“文件訪問類”。 顧名思義:本方法的作用就是創建一個“文件訪問類”對象,然后根據這個對象進行各種各樣的操作。
如下圖: 代碼編寫也很簡單。 “參數一”和“參數二”根據自己的“實際需求”填寫自己需要的內容。 注意:“文件打開方式”后面的小數點不要忘記了。
● 創建2方法
如下圖: 可以看到它和“創建”不同之處在于,本方法的“參數一”是“文件名類”。
如下圖: 代碼編寫的時候,將“要操作的文件”創建成“文件名類”。 最后把定義的“文件名類”變量,放入“參數1”即可,這就就可以創建一個“文件訪問類”出來。
● 讀入數據方法
如下圖: 可以看到有“五個”參數。 參數一:要操作的“文件訪問類”對象。 參數二:用來存儲數據的“字節數組”。 參數三:從“字節數組”的哪個位置開始存數據。 參數四:從“文件對象”里面讀取多長的數據。 參數五:保存最終讀取狀態。
如下圖: 本代碼編寫起來較為復雜。 例如:我們要讀取一個圖片需要這么做。
第一:定義四個變量。 1.文件尺寸變量:用來存儲要讀入的“文件尺寸”。 2.文件訪問類變量:存儲“文件訪問類”。 3.狀態對象:保存最終“狀態”。 4.字節數組:臨時存放要讀入的“文件字節”數組。
第二:首先需要用“文件名類”的“創建”方法,取出“文件尺寸” (無需定義“文件名類”變量,直接在“創建”最后輸入“點”加“方法名”即可),最后賦值給“尺寸”變量。 第三:用“文件訪問類”創建一個“文件訪問類”變量,因是讀入圖片,所以“打開方式”選擇“只讀”就可以了。 第三:我們需要將定義的“字節數組”,創建一個“成員數”(可以理解為容量),這個容量數據就是“強轉整數”后的“文件尺寸”。
第四:“讀入數據”填寫,因為是動態調用,所以“參數一”忽略不寫,也“不用逗號”分隔。 參數2:寫定義的“字節數組”變量 參數3:完整的讀入一個圖片,所以這里寫“0”。 參數4:輸入定義“文件尺寸”變量。 參數5:輸入定義的“狀態”變量
如果所有操作結束后,注意一定要使用“關閉”方法,將創建的“文件訪問”對象關閉。 最后用“圖片框”的“置圖片數據”方法將“字節數組”載入進來。
運行后如下圖: 成功讀取“移動后.png”圖片,讀取狀態也提示“成功”。
● 讀入數據2方法
如下圖: 本方法和“讀入數據”的區別就是,本方法少了位置和長度參數。
如下圖: 雖然參數少了“兩個”,但是代碼編寫也和“讀入數據”基本一致。 唯一不同之處也就是“讀入數據2”少寫兩個參數(紅框內),“字節數組”后直接就是“狀態對象”。
運行后如下圖: 和“讀入數據”一樣,成功讀取。
● 關閉方法
如下圖: 顧名思義,就是關閉一個創建的“文件訪問類”對象。 當一個“文件訪問”操作結束后,必須使用本方法關閉。
● 關閉方法
如下圖: 顧名思義,就是關閉一個創建的"文件訪問類"對象。 當一個"文件訪問"操作結束后,必須使用本方法關閉。
● 取當前讀寫位置方法
如下圖: 顧名思義,判斷一個文件的當前“讀寫”到哪個位置了,返回一個長整數值。 失敗會返回給“狀態類”對象。
如下圖: 代碼編寫很簡單,創建兩個變量。 創建“文件訪問類”對象,然后有本方法去“讀取”文件對象的“讀寫位置”。 最后“到文本”賦值給“編輯框2”顯示出來。
運行后如下圖: 因當前沒有對“移動后.png”進行任何讀寫操作,所以“返回0”。
● 取輸出對象方法
如下圖: 作用就是利用創建的“文件訪問類”返回一個“數據輸出類”來進行“寫文件”操作。
如下圖: 例如:我們保存“編輯框2”的內容到“編輯框1”的路徑,需要這么寫。 創建“三個”如下圖所示的變量(注意參考)。 創建“文件訪問類”然后用本方法,賦值給“數據輸出類”變量。 最后用“數據輸出類”的方法“寫UTF文本”寫“編輯框2”的內容,狀態對象寫入到第二個參數即可。
如下圖: 左圖:運行結果成功寫出。 右圖:文件管理器內也看到了對應的文件。
● 取輸入對象方法
如下圖: 本方法和“取輸出對象”基本一樣,不同之處就是本方法返回的是“數據輸入類”。 利用“數據輸入類”可以進行“讀取數據”操作。
如下圖: 代碼編寫和“取輸出對象”基本沒區別,就是將“數據輸出類”改成了“數據輸入類” 。 “寫UTF文本”改成了“讀UTF文本”,最后用“提示信息框”彈出。
運行結果如下圖: 成功將“取輸出對象”寫的文件內容“讀取”出來。
● 取文件尺寸方法
如下圖: 顧名思義就是取一個“文件訪問類”對象的尺寸,返回一個“長整數”值。
如下圖: 代碼編寫也很簡單,創建“文件訪問類”后,直接用本方法“取文件尺寸”即可,“狀態對象”參數有默認值,根據實際需求決定是否填寫。 最后“到文本”賦值“編輯框2”即可。
運行結果如下圖: 成功取出文件尺寸。
● 置當前讀寫位置方法
如下圖: 顧名思義,就是設置當前“讀寫位置“,并且返回一個“邏輯值”判斷是否設置成功。
如下圖: 創建后直接用本方法“置讀寫位置”即可,這里的參數隨意輸入了一個“10”,最后也可以用“取當前讀寫位置”方法判斷是否成功。
運行結果如下圖: 返回的“當前讀寫位置”也是“10”,證明寫入“位置”成功。
● 置文件尺寸方法
如下圖: 通俗理解就是將文件變大,并且不影響文件正常讀取!
如下圖: 創建“文件訪問類”后,用本方法置入一個“100”字節。 隨后可以用“取輸入對象”的“讀utf文本”方法,將文本讀取賦值給“編輯框2”顯示。
運行結果如下圖: 上面我們“取文件尺寸”的時候得知“火山文件.txt”是“29字節”,這里執行“置入尺寸”后依然可以“成功讀取”。 右圖:“文件管理器”內文件尺寸也變成了“100字節”
本教程已經錄入火山官方圖文教程,地址:http://doc.voldp.com/
|