java編寫圖形界面程序,java字節流讀取文件

在計算機中,無論是文本、圖片、音頻還是視頻,所有文件都是以二進制(字節)形式存在的,I/O流中針對字節的輸入/輸出提供了一系列的流,統稱為字節流。

字節流是程序中最常用的流,根據數據的傳輸方向可將其分為字節輸入流和字節輸出流。在JDK中,提供了兩個抽象類InputStream和OutputStream,它們是字節流的頂級父類,所有的字節輸入流都繼承自InputStream,所有的字節輸出流都繼承自OutputStream。

為了方便理解,可以把InputStream和OutputStream比作兩根“水管”,如圖所示。

Java面試丨什麼是字節流?常用方法最全盤點

圖中,InputStream被看成一個輸入管道,OutputStream被看成一個輸出管道,數據通過InputStream從源設備輸入到程序,通過OutputStream從程序輸出到目標設備,從而實現數據的傳輸。由此可見,I/O流中的輸入/輸出都是相對於程序而言的。

在JDK中,InputStream和 OutputStream提供了一系列與讀寫數據相關的方法,接下來先來了解一下InputStream的常用方法,如表所示。

InputStream的常用方法:

Java面試丨什麼是字節流?常用方法最全盤點

表中列舉了InputStream的四個常用方法。前三個read()方法都是用來讀數據的,其中,第一個read()方法是從輸入流中逐個讀入字節,而第二個和第三個read()方法則將若干字節以字節數組的形式一次性讀入,從而提高讀數據的效率。

在進行I/O流操作時,當前I/O流會佔用一定的內存,由於系統資源寶貴,因此,在I/O操作結束後,應該調用close()方法關閉流,從而釋放當前I/O流所佔的系統資源。

與InputStream對應的是OutputStream。OutputStream是用於寫數據的,因此OutputStream提供了一些與寫數據有關的方法。

OutputStream的常用方法:

Java面試丨什麼是字節流?常用方法最全盤點

表中,列舉了OutputStream類的五個常用方法。前三個是重載的write()方法,都用於向輸出流寫入字節,其中,第一個方法逐個寫入字節,後兩個方法是將若干個字節以字節數組的形式一次性寫入,從而提高寫數據的效率。

flush()方法用來將當前輸出流緩衝區(通常是字節數組)中的數據強制寫入目標設備,此過程稱為刷新。close()方法是用來關閉流並釋放與當前IO流相關的系統資源。

InputStream和OutputStream這兩個類雖然提供了一系列和讀寫數據有關的方法,但是這兩個類是抽象類,不能被實例化,因此,針對不同的功能,InputStream和OutputStream提供了不同的子類,這些子類形成了一個體系結構,如下圖所示。

InputStream的子類:

Java面試丨什麼是字節流?常用方法最全盤點

OutputStream的子類:

Java面試丨什麼是字節流?常用方法最全盤點

從圖中可以看出,InputStream和OutputStream的子類有很多是大致對應的,比如,ByteArrayInputStream和ByteArrayOutputStream、FileInputStream和FileOutputStream等。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/233103.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-11 13:25
下一篇 2024-12-11 13:25

相關推薦

發表回復

登錄後才能評論