1. 程式人生 > >Java學習筆記之——IO

Java學習筆記之——IO

一. IO

IO讀寫

流分類:

按照方向:輸入流(讀),輸出流(寫)

按照資料單位:位元組流(傳輸時以位元組為單位),字元流(傳輸時以字元為單位)

按照功能:節點流,過濾流

四個抽象類:

InputStream:輸入位元組流

OutputStream:輸出位元組流

Reader:輸入字元流

Write:輸出字元流

1. 第一組:檔案的讀寫流

FileInputStream  VS  FileReader

 

 

1)位元組流

FileInputSream:位元組輸入流

常用方法:

int

read()

從該輸入流讀取一個位元組的資料。 如果當前位置沒有則返回-1

int

read(byte[] b)

從該輸入流讀取最多 b.length個位元組的資料為位元組陣列。

int

read(byte[] b, int off, int len) off:開始讀的位置,len:讀的長度

從該輸入流讀取最多 len位元組的資料為位元組陣列。

void

close()

關閉此檔案輸入流並釋放與流相關聯的任何系統資源。

作用:

以位元組為單位從檔案中把資料讀到程式中

使用步驟:

  a.建立流物件

   

  b.讀資料,read,重點

   

  c.釋放資源,close()

   

 

注意:1.在檔案中,通常一個字母佔用1個位元組,一個漢子至少佔用2個位元組,具體根編碼有關。

  2.從非記憶體中讀取資料要比從記憶體中讀取要慢很多,效率不高

可以一次讀取多個來提高效率

 

FileOutputStream:位元組輸出流

常用方法:

void

write

(int b)

將指定的位元組寫入此檔案輸出流。

void

write(byte[] b, int off, int len)

將 len位元組從位於偏移量 off的指定位元組陣列寫入此檔案輸出流。

void

write(byte[] b)

將 b.length個位元組從指定的位元組陣列寫入此檔案輸出流。

void

close()

關閉此檔案輸出流並釋放與此流相關聯的任何系統資源。

作用:

以位元組為單位從程式中把資料寫入到檔案中

使用步驟:

  a.建立流物件 

  b.寫資料,write

  c.關閉

   

 

2)字元流

FileReader:輸入字元流

 

 

FileWrite:輸出字元流

 

 

 

 

 

 

 

 

 

 

 

 

========================================================

3)可讀可寫位元組流

RandomAccessFile

1. 緩衝流

 

2. 字元流(高階流)

1)

2)

4.物件流

序列化

反序列化

5.字元緩衝流

 

 

 

 

 

 

筆記做的不全,這位大神做的很全  https://www.cnblogs.com/caixiaohua/p/6737808.html