Java IO類學(xué)習(xí)總結(jié)

剛好在看深入Java web技術(shù)內(nèi)幕這本書,書里提到了Java IO,之前日常的工作中一直對(duì)各種IO類之間的關(guān)系理不清楚,正好趁此機(jī)會(huì)走讀下源碼做下總結(jié)

IO類

人類識(shí)別字符,機(jī)器識(shí)別字節(jié)蚤认,如果需要對(duì)字符進(jìn)行機(jī)器間的傳輸,需要將字符向字節(jié)進(jìn)行轉(zhuǎn)化糕伐,Java針對(duì)2種數(shù)據(jù)格式砰琢,有不同的IO類:

  • 基于字節(jié)操作的IO接口:InputStream和OutputStream
    由于OutputStream和InputStream的相對(duì)關(guān)系,我們只講InputStream
    InputStream 是所有字節(jié)輸入類的基類,它的作用就是從輸入源讀取字節(jié)到內(nèi)存
    類層次結(jié)構(gòu)如下:
  • 基于字符操作的IO接口:Writer和Reader
    Reader 是所有字符輸入類的基類陪汽,它的作用就是從輸入源讀取字符到內(nèi)存
    類層次結(jié)構(gòu)如下:

InputStream/Reader/InputStreamReader3者之間的關(guān)系:

1.InputStreamReader是字節(jié)流和字符流之間的橋梁训唱,InputStreamReader繼承了Reader類,InputStreamReader的注釋如下:
An InputStreamReader is a bridge from byte streams to character streams: It reads bytes and decodes them into characters using a specified {@link java.nio.charset.Charset charset}. The charset that it uses may be specified by name or may be given explicitly, or the platform's default charset may be accepted.

2.更直白的理解:InputStreamReader將InputStream中讀取的字節(jié)轉(zhuǎn)換為字符挚冤,下面的代碼將3者關(guān)系表現(xiàn)了出來(lái):

        // 創(chuàng)建字節(jié)輸入流
        FileInputStream fi = new FileInputStream("/Users/ali/10_python/get-pip.py");

        // 字節(jié)輸入流向字符輸入流轉(zhuǎn)換
        InputStreamReader ir = new InputStreamReader(fi, "UTF-8");

        // 從InputStreamReader中讀取到BufferedReader况增,實(shí)現(xiàn)高效的字符行讀取
        BufferedReader br = new BufferedReader(ir);

        StringBuilder contentBuffer = new StringBuilder();
        String line = "";
        while ((line = br.readLine()) != null) {
            contentBuffer.append(line);
            System.out.println(line);
        }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市训挡,隨后出現(xiàn)的幾起案子澳骤,更是在濱河造成了極大的恐慌,老刑警劉巖舍哄,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宴凉,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡表悬,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門丧靡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蟆沫,“玉大人,你說(shuō)我怎么就攤上這事温治》古樱” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵熬荆,是天一觀的道長(zhǎng)舟山。 經(jīng)常有香客問(wèn)我,道長(zhǎng)卤恳,這世上最難降的妖魔是什么询吴? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任熊镣,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘藕赞。我一直安慰自己,他們只是感情好染突,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布唁情。 她就那樣靜靜地躺著,像睡著了一般镜豹。 火紅的嫁衣襯著肌膚如雪傲须。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天趟脂,我揣著相機(jī)與錄音泰讽,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛菇绵,可吹牛的內(nèi)容都是我干的肄渗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼咬最,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼翎嫡!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起永乌,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤惑申,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后翅雏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體圈驼,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年望几,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绩脆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡橄抹,死狀恐怖靴迫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情楼誓,我是刑警寧澤玉锌,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站疟羹,受9級(jí)特大地震影響主守,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜榄融,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一参淫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧剃袍,春花似錦黄刚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至畏邢,卻和暖如春业扒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背舒萎。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工程储, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓章鲤,卻偏偏與公主長(zhǎng)得像摊灭,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子败徊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • tags:io categories:總結(jié) date: 2017-03-28 22:49:50 不僅僅在JAVA領(lǐng)...
    行徑行閱讀 2,181評(píng)論 0 3
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法帚呼,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法皱蹦,繼承相關(guān)的語(yǔ)法煤杀,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 31,664評(píng)論 18 399
  • 摘要 Java I/O是Java技術(shù)體系中非郴Σ福基礎(chǔ)的部分沈自,它是學(xué)習(xí)Java NIO的基礎(chǔ)。而深入理解Java NI...
    biakia閱讀 7,613評(píng)論 7 81
  • Java 語(yǔ)言支持的類型分為兩類:基本類型和引用類型辜妓。整型(byte 1, short 2, int 4, lon...
    xiaogmail閱讀 1,350評(píng)論 0 10
  • 一枯途、流的概念和作用。 流是一種有順序的籍滴,有起點(diǎn)和終點(diǎn)的字節(jié)集合柔袁,是對(duì)數(shù)據(jù)傳輸?shù)目偝苫虺橄蟆<磾?shù)據(jù)在兩設(shè)備之間的傳輸...
    布魯斯不吐絲閱讀 10,055評(píng)論 2 95