黑馬程序員----------java基礎知識加強之IO輸入輸出

                               ----------------------android培訓java培訓、期待與您交流! ----------------------


    看了一點IO的視頻,老師目前還沒講到,暫時先把自己理解的層面總結一下。

IO流輸入與輸出

按流向分爲:輸入流、輸出流

按操作數據分爲:字節流、字符流

字節流的抽象基類:

InputStream、OutputStreamBufferedInputStreamBufferedOutputStream

——FileInputStream

 

字符流的抽象基類:

Reader、 WriterBufferedReaderBufferedWriter

——FileReader

打印流:

字節打印流:printStream

構造函數可接收的參數類型:

file對象、字符串路徑String、字節輸出流OutputStream

字符打印流:printWriter

構造函數可接收的參數類型:

File對象、字符串路徑String

字節輸出流OutputStream、字符輸出流Writer

序列流:SequenceInputStream

對已有文件進行續寫:

FileWriter fw=new FileWriter("test.txt",true);傳遞一個true參數,代表不覆蓋已有的文件內容,將它加到已有文件的末尾。

字符流的緩衝區:

對應類:BufferedWriterBufferedReader 需結合流才能使用。

它的出現是爲了提高流的操作效率,所以在創建緩衝區前必須要先有流對象。

只要用到緩衝區就要記得刷新。bufferWriter.flush();

該緩衝區提供了一個跨平臺的換行方法bufferWriter.newLine();

該緩衝區提供了一個讀取一行的方法bufferReader.readLine();

裝飾設計模式:

當想要對已有的對象進行功能增強時,可以定義類,將已在對象傳入,基於原來的功能,提供增強功能。則自定義的類就稱爲裝飾類。

裝飾類通常會通過構造方法接收被裝飾類的對象,並基於被裝飾的對象的功能提供更強的功能。

Person 類,

SuperPerson 類中寫:

private Person p;

SuperPerson(Person p){this.p=p;}

MyReader專門用於讀取數據的類。

——MyTextReader

——MyBufferReader(MyReader r){}    

——MyMediaReader

——MyBufferReader(MyReader r){}  

——MyDataReader

——MyBufferReader(MyReader r){}  

——MyBufferReader

——MyBufferReader(MyReader r){}  

Class MyBufferReader extends MyReader{

private MyReader r;

MyBufferReader(MyReader r){}

}

裝飾模式比繼承靈活,降低了類與類之間的關係,裝飾類和被裝飾類都所屬於一個體系。

流操作的基本規律:

1、明確源和目的

源:輸入流——InputStreamReader

目的:輸出流——OutputStreamWriter

2、操作的數據是否是純文本

是:字符流

不是:字節流

轉換流是字符和字節之間的橋樑,涉及到字符編碼轉換時需用到,InputStreamReader

File:

1、創建:

Boolean createNewFile():在指定位置創建文件,如果文件已存在則不創建,返回false.

Boolean mkdir();創建文件夾

Boolean mkdirs();創建多級目錄的文件夾

2、刪除:boolean delete();刪除失敗返回false;

Void deleteOnExit();在程序退出時刪除指定文件

3、判斷:canExecute()測試文件是否可執行

在判斷文件對象是否是文件或是目錄時必須要先判斷該文件對象封裝的內容是否存在,通過exists判斷

isFile();是否是文件

isDirectory();是否是目錄

isHidden();是否是隱藏文件

4、獲取信息:

getName();getpath();getParent();getAbsolutePath();

getCanonicalPath();獲得規範路徑

lastMotified();最後修改的時間

遞歸:

遞歸應注意的條件:

1、限定條件

2、要注意遞歸的次數,避免內存溢出

 

 

                  ----------------------android培訓java培訓、期待與您交流! ----------------------
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章