InputStreamReader 原始碼分析

2021-09-01 08:27:58 字數 1235 閱讀 9303

[color=violet]inputstreamreader[/color]在[color=violet]位元組流[/color]和[color=violet]字元流[/color]之間架起了橋梁。能夠讀取位元組陣列並使用指定的字符集解碼成字元流。

每次呼叫[color=violet]inputstreamreader[/color]的read方法會從底層位元組流讀取乙個或多個位元組。為了確保有效的轉換,可能會從底層流中讀取更多的位元組。

為了提高效能,可以考慮結合[color=violet]bufferedreader[/color]使用:

bufferedreader in = new bufferedreader(new inputstreamreader(system.in));

public class inputstreamreader extends reader catch (unsupportedencodingexception e)

} // 根據指定的字符集名來建立例項

public inputstreamreader(inputstream in, string charsetname)

throws unsupportedencodingexception

// 根據指定的字符集來建立例項

public inputstreamreader(inputstream in, charset cs)

// 根據指定的字符集解碼器來建立例項

public inputstreamreader(inputstream in, charsetdecoder dec)

// 獲取該流使用的字元編碼名

public string getencoding()

// 讀取乙個字元

public int read() throws ioexception

// 讀取一串字元到字元陣列中

public int read(char cbuf, int offset, int length) throws ioexception

// 檢視流是否準備好用於讀取。

public boolean ready() throws ioexception

// 關閉reader

public void close() throws ioexception

}

Cartographer原始碼篇 原始碼分析 1

在安裝編譯cartographer 1.0.0的時候,我們可以看到 主要包括cartorgarpher ros cartographer ceres sover三個部分。其中,ceres solver用於非線性優化,求解最小二乘問題 cartographer ros為ros平台的封裝,獲取感測器資料...

AbstractListView原始碼分析3

normal list that does not indicate choices public static final int choice mode none 0 the list allows up to one choice public static final int choice ...

Android AsyncTask原始碼分析

android中只能在主線程中進行ui操作,如果是其它子執行緒,需要借助非同步訊息處理機制handler。除此之外,還有個非常方便的asynctask類,這個類內部封裝了handler和執行緒池。本文先簡要介紹asynctask的用法,然後分析具體實現。asynctask是乙個抽象類,我們需要建立子...