當前位置:學者齋 >

計算機 >java語言 >

什麼是java字節流字符流

什麼是java字節流字符流

字節流與和字符流的使用非常相似,兩者除了操作代碼上的不同之外,是否還有其他的不同呢?實際上字節流在操作時本身不會用到緩衝區(內存),是文件本身直接操作的,而字符流在操作時使用了緩衝區,通過緩衝區再操作文件對於我們常用的GBK中,英文是佔用1個字節,中文是2個今天,小編為大家搜索整理了java字節流字符流是什麼,希望大家能有所收穫,更多精彩內容請持續關注我們應屆畢業生考試網!

什麼是java字節流字符流

對於UTF-8,英文是1個,中文是3個

對於Unicode,英文中文都是2個

Java的流操作分為字節流和字符流兩種。

  1、字節流

所有的讀操作都繼承自一個公共超類tStream類。

所有的寫操作都繼承自一個公共超類utStream類。

InputStream和OutputStream都是抽象類。

InputStream有6個低級輸入流:

低級流

流的.用途

ByteArrayInputStream

從內存數組中讀取數據字節

FileInputStream

從本地文件系統中讀取數據字節

PipedInputStream

從線程管道中讀取數據字節

StringBufferInputStream

從字符串中讀取數據字節

SequenceInputStream

從兩個或多個低級流中讀取數據字節,當到達流的末尾時從一個流轉到另一個流

從用户控制枱讀取數據字節

InputStream還有一個子類:過濾器流erInputStream。過濾器流即能把基本流包裹起來,提供更多方便的用法。

FilterInputStream 類的構造方法為FilterInputStream(InputStream),在指定的輸入流之上,創建一個輸入流過濾器。

FilterInputStream的常用的子類如下:

過濾器輸入流

流的用途

BufferedInputStream

緩衝區對數據的訪問,以提高效率

DataInputStream

從輸入流中讀取基本數據類型,如int、float、double或者甚至一行文本

LineNumberInputStream

在翻譯行結束符的基礎上,維護一個計數器,該計數器表明正在讀取的是哪一行。

PushbackInputStream

允許把數據字節向後推到流的首部

OutputStream(略)

OutputStream的結構基本和InputStream是一樣的。

  2、字符流

注:是在jdk1.1裏面引進的,上面字節流是在jdk1.0引進的。當用於處理文本數據時,選擇字符流比字節流更好。但對只出路基本數據類型的開發者,可以繼續使用字節流。

所有的讀操作都繼承自一個公共超類er類。

所有的寫操作都繼承自一個公共超類er類。

同樣Reader和Writer也是抽象類。

Reader的常用的子類如下:

低級讀取器

流的用途

CharArrayReader

從字符數組中讀取數據

InputStreamReader

FileReader(InputStreamReader的子類)

從本地文件系統中讀取字符序列

StringReader

從字符串中讀取字符序列

PipedReader

從線程管道中讀取字符序列

InputStreamReader重點講解:

InputStreamReader是從輸入流中讀取數據,連接輸入流於讀取器。如:

new InputStreamReader()

構造方法:

InputStreamReader(InputStream)

用缺省的字符編碼方式,創建一個 InputStreamReader。

InputStreamReader(InputStream, String)

用已命名的字符編碼方式,創建一個 InputStreamReader。

常用的過濾器讀取器:

過濾器讀取器

流的用途

BufferedReader

緩衝數據的訪問,以提高效率

LineNumberReader(BufferedReader的子類)

維護一個計數器,該計數器表明正在讀取的是哪一行。

FilterReader(抽象類)

提供一個類創建過濾器時可以擴展這個類

PushbackReader(FilterReader的子類)

允許把文本數據推回到讀取器的流中

這些過濾器讀取器都可以傳入一個Reader作為構造方法的參數。

Writer(略)

Writer的結構基本和Reader是一樣的。

字節流是最基本的,字符流是為了處理字符而提出來的。

new BufferedReader(new InputStreamReader(nputStream()));解釋:

nputStream()是字節流;

InputStreamReader把字節流轉換成字符流;

BufferedReader緩衝字符流,使得能夠使用readline()等方法,直接讀取一行。

標籤: JAVA 字節 字符
  • 文章版權屬於文章作者所有,轉載請註明 https://xuezhezhai.com/zh-mo/jsj/java/5x9nwv.html