Java流

碼農天宇發表於2020-12-03

輸入

把電腦硬碟上的東西讀到資料中,稱為輸入(input) ,對資料進行 read操作

輸出

從程式往外部裝置寫資料,稱為輸出(output),進行資料write操作

在這裡插入圖片描述

輸入流

定義: 往程式中讀

所有輸入流都是InputStream類或者Reader類的子類

類名以InputStream結尾的類都是InputStream的子類
類名以Reader結尾的類都是Reader的子類

輸出流

定義: 從程式往外寫

所有輸出流都是OutputStream類或者Writer類的子類。

類名以OutputStream結尾的類都是OutputStream的子類。
類名以Writer結尾的類都是Writer類的子類。

根據資料流編碼格式分為位元組流和字元流

位元組流

InputStream和OutputStream的子類都是位元組流

-可以讀寫二進位制檔案,主要處理音訊、圖片、歌曲、位元組流,處理單元為1個位元組。

位元組流中常用類

     位元組輸入流 FileInputStream
     位元組輸出流 FileOutputStream

字元流

Reader和Writer的子類都是字元流
-主要處理字元或字串,字元流處理單元為2個位元組。
-位元組流將讀取到的位元組資料,去指定的編碼表中獲取對應文字。

字元流中常用類

字元輸入流 FileReader
字元輸出流 FileWriter

輸入輸出節點位元組流

InputStream的基本方法

----讀取一個位元組並以整數的形式返回(0~255),如果返回-1已到輸入流的末尾。

int read() throws IOException

----讀取一系列位元組並儲存到一個陣列buffer,返回實際讀取的位元組數,如果讀取前已到輸入流的末尾返回-1

int read(byte[] buffer) throws IOException

----關閉流釋放記憶體資源

void close() throws IOException

OutputStream的基本方法

----向輸出流中寫入一個位元組資料,該位元組資料為引數b的低8位

void write(int b) throws IOException

----將一個位元組型別的陣列中的從指定位置(off)開始的len個位元組寫入到輸出流

void write(byte[] b, int off, int len) throws IOException

----關閉流釋放記憶體資源

void close() throws IOException

根據封裝型別分為節點流和處理流

節點流

如果流封裝的是某種特定的資料來源,如檔案、字串、字串陣列等,則稱為節點流。

節點流中常用類

位元組輸入流 FileInputStream
位元組輸出流 FileOutputStream
字元輸入流 FileReader
字元輸出流 FileWriter

處理流

如果流封裝的是其它流物件,稱為處理流。
處理流提供了緩衝功能,提高讀寫效率,同時增加了一些新的方法。

處理流中常用類

緩衝位元組輸出流 BufferedOutputStream
緩衝位元組輸入流 BufferedInputStream
緩衝字元輸入流 BufferedReader
緩衝字元輸出流 BufferedWriter

輸入輸出節點字元流

Reader的基本方法

----讀取一個字元並以整數的形式返回,如果返回-1已到輸入流的末尾。

int read() throws IOException

----讀取一系列字元並儲存到一個陣列buffer,返回實際讀取的字元數,如果讀取前已到輸入流的末尾返回-1

int read(char[] cbuf) throws IOException

—關閉

void close() throws IOException

Writer 的基本方法

向輸出流中寫入一個字元資料,該位元組資料為引數b的16位

void write(int c) throws IOException

一個字元型別的陣列中的資料寫入輸出流,

void write(char[] cbuf) throws IOException

將一個字元型別的陣列中的從指定位置(offset)開始的length個字元寫入到輸出流

void write(char[] cbuf, int offset, int length) throws IOException

關閉

void close() throws IOException