十三、遞回
遞回:指在當前方法內呼叫自己的這種現象
遞回的分類:直接遞回,間接遞回
直接遞回稱為方法自身呼叫自己
間接遞回可以A方法呼叫B方法,B方法呼叫C方法,C方法呼叫A方法,
注意事項:
遞回一定要有條件限定,保證遞回能夠停止下來,否則會發生堆疊記憶體溢位
在遞回中雖然有限定條件,但是遞回次數不能太多,否則也會發生堆疊記憶體溢位
構造方法,禁止遞回
遞回的使用前提:
當呼叫方法的時候,方法的主體不變,每次呼叫引數的方法不同,可以使用遞回
FileFilter 介面:用于抽象路徑名( File 物件)的過濾器
作用:用來過濾檔案( File 物件)
抽象方法:用來過濾檔案的方法
boolean accept(File pathname)測驗指定抽象路徑名是否應該包含在某個路徑名串列中
引數:File pathname:使用listFlies方法遍歷目錄,得到的每一個檔案物件
FileFilter 介面:實作此介面的類實體可以用于過濾器檔案名
作用:用來過濾檔案名稱
抽象方法:用來過濾檔案的方法
boolean accept(File dir,String name)測驗指定檔案是否應該包含在某一檔案串列中
引數:
File dir:構造方法中傳遞的被遍歷的目錄
String name:使用listFiles方法遍歷目錄,獲取每一個檔案/檔案夾名稱
注意:兩個過濾器介面是沒有實作類的,需要我們自己寫實作類,重寫過濾的方法 accept ,在方法中自己定義過濾的規則
十四、IO流
input / output 資料(字符,位元組)一個字符=兩個位元組,一個位元組=8個二進制位
輸入流 輸出流
位元組流 位元組輸入流InputStream 位元組輸出流OutputStream
字符流 字符輸入流Reader 字符輸出流Writer
位元組流
一切檔案資料在 存盤時,都是以二進制數字的形式保存,都是一個一個的位元組,傳輸時一樣如此
位元組輸出流(OutputStream)
寫入資料的原理(記憶體–>硬碟)
java程式 --> JVM 虛擬機 --> os(作業系統) --> os呼叫寫資料的方法 --> 把資料寫入到檔案中
位元組輸出流的使用步驟:
1.創建一個 FileOutputStream 物件,構造方法中傳遞寫入資料的目的地
2.呼叫 FileOutputStream 物件的方法 write ,把資料寫入到檔案中
3.釋放資源(流使用會占用一定的記憶體,使用完畢要把記憶體清空,提高程式的效率)
一次寫入多個位元組:
如果寫入的第一個位元組是正數(0-127),那么顯示的時候會查詢ASCII表
如果寫入的第一個位元組是負數,那第一個位元組會和第二個位元組,兩個位元組組成一個中文顯示,查詢系統默認碼表(GBK)
續寫:
FileOutputStream(String name, boolean append)
FileOutputStream(File file, boolean append)
換行:
Windows:\r\n
Linux:\n
Mac:\r
位元組輸入流(InputStream)
FileInputStream:檔案位元組輸入流,把硬碟檔案中的資料,讀取到記憶體中使用
讀取資料的原理(硬碟 --> 記憶體)
java程式 --> JVM --> OS --> OS讀取資料的方法 --> 讀取檔案
位元組輸入流的使用步驟:
1.創建一個 FileInputStream 物件,構造方法中系結要讀取的資料源
2.呼叫 FileOutputStream 物件的方法 read ,讀取完件
3.釋放資源
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/263432.html
標籤:java
上一篇:4種GC日志解讀和分析
