我的學習之路_第十章_IO流

IO流


I: input 輸入,讀取到內存
O: Output 輸出,寫入文件
流: 數據流(字符,字節)


輸入: 字節輸入流(FileInputStream),字符輸入流(FileReader)
輸出: 字節輸出流(FileOutputStream),字符輸出流(FileWriter)




【字節流】


OutputStream:字節輸入流,是所有字節輸入流ed父類


所屬包:java.io包中




★:公共的成員方法:


abstract   返回值:void  write(int b) 寫入一個字節
  返回值:void  write(vyte[] b) 寫入一個字節數組 寫入數據的時候,如果是整數,會查詢ADCLL表,
如果是第一個是負數,第二個字節可以使正數,也可以使負數,查詢的時候會把連個字節組成一個字節.
快速寫入字節數組的方法:String類中有一個方法  返回值:byte[]      getBytes(String charseName) 把字符串轉換爲字節數組
  返回值:void  write(byte[] b,int off, int len) 寫入字節數組,off是開始索引,len寫幾個
  返回值:void  close() 關閉此輸出流並釋放與此流有關的所有系統資源.




【FileOutputStream】文件字節輸出流
作用:把內存中的數據,以字節的方式,寫入到文件中.


構造方法:
FileOutputStream(File file) 創建一個向指定File對象表示的文件中寫入數據的文件輸出流
FilePutputStream(String name) 創建一個向具體指定名稱的文件中寫入數據的輸出文件流


構造方法的參數: file:文件 name:文件的路徑 都是寫入數據的目的地


特點:如果構造方法中指定的文件或者文件的路徑所指向的文件不存在,構造方法就會創建一個文件,
如果沒有打開追加寫的開關,文件已經存在,則會覆蓋.


使用步驟:
1:創建一個字節輸出流對象FileOutputStream,綁定數據的目的地
2:使用FileOutoutStream中的write方法,把數據寫入到文件中.
3:釋放資源.

流寫入數據的時候,會找到JVM,JVM會調用系統本地哦的方法完成寫,使用完 流要關閉和系統有關的資源(釋放內存).




文件的續寫和換行:


追加寫:使用兩個參數的構造方法
FileOutputStream(File file, boolean append) 
FileOutputStream(String name, boolean append) 
  參數:
  File file,String name:寫入數據的目的地
  boolean append:追加寫的開關,true:可以追加寫(往之前的文件,繼續寫內容),fasle:不能追加寫(覆蓋之前的文件)




換行:要輸入通用的換行符號


fos.write(System.getProperty("line.separator").getBytes());




【InputStream】字節輸入流,是所有字節輸入流的父類




成員方法:
返回值:int read():讀取一個字節並返回,沒有字節返回-1
返回值:int read(byte[]): 讀取一定量的字節數,並存儲到字節數組中,返回讀取到的字節數
byte數組的作用:起到緩衝作用,一次可以往數組中緩衝多個字節,可以提高讀取效率.
返回的int是每次讀取的有效字節個數.


返回值:void close(): 關閉此文件輸入流並釋放與此流有關的所有系統資源




★ FileInputStream 文件字節輸入流


作用:把文件中的數據,以字節的方式讀取到內存中


構造方法:
FileInputStream(String name)
FileInputStream(File file)


參數:讀取的哪個文件(數據源)


String name:字符串的文件路徑
File file:讀取的文件


使用步驟:
1.創建字節輸入流對象FileInputStream,並且綁定數據源
2.使用FileInputStream對象中的方法read,讀取文件
3.釋放資源




【BufferedOutputStream】 字節緩衝輸出流 extends OutputStream


字節緩衝輸入流作用:給基本流早呢更加一個緩衝區,提高基本流的效率


繼承了父類的公用的成員方法


構造方法:


BufferedOutputStream(OutputStream out) 創建一個新的緩衝輸出流,以將數據寫入指定的底層輸入流
參數:
OutputStream out: 字節輸出流,可以使用FileOutputStream
參數傳遞時哪個字節輸出流,就會給哪個字節輸出流增加一個緩衝區,提高這個流的效率.


使用步驟:


1:創建FileOutputStream對象,綁定數據目的地
2:創建BufferedOutputStream對象,構造方法中傳遞FileOutputStream,提高FileOutputSteam效率
3:使用BufferedOutputStream中的方法,write,把數據寫入緩衝區中
4:使用BufferedOutputStream中的flush,把緩衝區中的數據,刷新到文件中.(這裏一定要刷新)
5:釋放資源


【BufferedInputStream】字節緩衝輸入流 extends InputStream
作用:給基本字節輸入流增加一個緩衝區,提高基本字節輸入流的效率


繼承自父類的公共的成員方法


構造方法:
BufferedInputStream(InputStream in)  創建一個BufferedInputStream 並保存期參數,即輸入流 in,以便將來使用.
參數:
InputStream in: 字節輸入流,可以傳遞FileInputStream
參數傳遞的是哪個字節輸入流對象,就會給哪個字節輸入流對象增加一個緩衝區,提高該流的效率.


使用步驟:
1:創建FileInputStream對象,綁定數據源
2:創建BufferedInputStream對象,構造方法中傳入FileInputStream,提高FileInputStream的讀取效率.
3:使用BufferedInputStream中的方法 read,讀取文件
4:釋放資源


★ 總結:
字節流:操作的文件是非文本文件
字符流:操作的文件都是文本文件,一次讀取一個字符,可以讀取中文
文本文件:使用記事本打開,人能看懂的文件.

























































發佈了39 篇原創文章 · 獲贊 0 · 訪問量 4199
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章