Java之InputStreamReader類(lèi)的實(shí)現(xiàn)
InputStreamReader 類(lèi)
1、概述
轉(zhuǎn)換流 java.io.InputStreamReader ,是Reader的子類(lèi),是從字節(jié)流到字符流的橋梁。
該類(lèi)讀取字節(jié),并使用指定的字符集將其解碼為字符。它的字符集可以由名稱(chēng)指定,也可以接受平臺(tái)的默認(rèn)字符集。
2、繼承自父類(lèi)的共性成員方法
該類(lèi)繼承于 Reader 類(lèi),繼承了父類(lèi)的共性成員方法:
- int read() 讀取單個(gè)字符并返回。
- int read(char[] cbuf)一次讀取多個(gè)字符,將字符讀入數(shù)組。
- void close() 關(guān)閉該流并釋放與之關(guān)聯(lián)的所有資源。
3、構(gòu)造方法
InputStreamReader(InputStream in) 創(chuàng)建一個(gè)使用默認(rèn)字符集的 InputStreamReader。
InputStreamReader(InputStream in, String charsetName) 創(chuàng)建使用指定字符集的 InputStreamReader。
參數(shù):
- InputStream in:字節(jié)輸入流,用來(lái)讀取文件中保存的字節(jié)
- String charsetName:指定的編碼表名稱(chēng),不區(qū)分大小寫(xiě),可以是utf-8/UTF-8,gbk/GBK,...不指定默認(rèn)使用UTF-8
4、使用步驟
① 創(chuàng)建InputStreamReader對(duì)象,構(gòu)造方法中傳遞字節(jié)輸入流和指定的編碼表名稱(chēng)
② 使用InputStreamReader對(duì)象中的方法read讀取文件
③ 釋放資源
注意:構(gòu)造方法中指定的編碼表名稱(chēng)要和文件的編碼相同,否則會(huì)發(fā)生亂碼
Demo:
public static void main(String[] args) throws IOException {
//1.創(chuàng)建InputStreamReader對(duì)象,構(gòu)造方法中傳遞字節(jié)輸入流和指定的編碼表名稱(chēng)
//InputStreamReader isr = new InputStreamReader(new FileInputStream("E:\\gbk.txt"),"UTF-8");//???
//將匿名對(duì)象流中的字節(jié)流按照GBK進(jìn)行解碼為字符流
InputStreamReader isr = new InputStreamReader(new FileInputStream("E:\\gbk.txt"),"GBK");//你好
//2.使用InputStreamReader對(duì)象中的方法read讀取文件
int len = 0;
while((len = isr.read())!=-1){
System.out.println((char)len);
}
//3.釋放資源
isr.close();
}
到此這篇關(guān)于Java之InputStreamReader類(lèi)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java InputStreamReader類(lèi)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaFX實(shí)現(xiàn)簡(jiǎn)單日歷效果
這篇文章主要為大家詳細(xì)介紹了JavaFX實(shí)現(xiàn)簡(jiǎn)單日歷效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
mybatis動(dòng)態(tài)生成sql語(yǔ)句的實(shí)現(xiàn)示例
在MyBatis中,動(dòng)態(tài)SQL是一個(gè)非常重要的特性,它允許我們根據(jù)條件動(dòng)態(tài)地生成SQL語(yǔ)句,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11
深入解析Java的Struts框架中的控制器DispatchAction
這篇文章主要介紹了深入解析Java的Struts框架中的控制器DispatchAction,Struts是Java的SSH三大web開(kāi)發(fā)框架之一,需要的朋友可以參考下2015-12-12
java代碼如何實(shí)現(xiàn)存取數(shù)據(jù)庫(kù)的blob字段
這篇文章主要介紹了java代碼如何實(shí)現(xiàn)存取數(shù)據(jù)庫(kù)的blob字段問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
Java數(shù)據(jù)結(jié)構(gòu)之紅黑樹(shù)的實(shí)現(xiàn)方法和原理詳解
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之紅黑樹(shù)的實(shí)現(xiàn)方法和原理,紅黑樹(shù)是一種特殊的二叉查找樹(shù),每個(gè)結(jié)點(diǎn)都要儲(chǔ)存位表示結(jié)點(diǎn)的顏色,或紅或黑,本文將通過(guò)示例為大家詳細(xì)講講紅黑樹(shù)的原理及實(shí)現(xiàn),感興趣的朋友可以了解一下2024-02-02
SpringBoot實(shí)現(xiàn)物品點(diǎn)贊功能
這篇文章主要介紹了SpringBoot物品點(diǎn)贊功能實(shí)現(xiàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
SpringBoot2之PUT請(qǐng)求接收不了參數(shù)的解決方案
這篇文章主要介紹了SpringBoot2之PUT請(qǐng)求接收不了參數(shù)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
關(guān)于@Scheduled參數(shù)及cron表達(dá)式解釋
這篇文章主要介紹了關(guān)于@Scheduled參數(shù)及cron表達(dá)式解釋?zhuān)哂泻芎玫膮⒖純r(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12

