Java之I/O流總結(jié)-持續(xù)更新

結(jié)構(gòu)圖

定義

能被連續(xù)讀取數(shù)據(jù)的數(shù)據(jù)源和能被連續(xù)寫(xiě)入數(shù)據(jù)的接收端就是流

字節(jié)流與字符流的區(qū)別

字符流 --讀到一個(gè)或多個(gè)字節(jié)(中文兩個(gè)字節(jié),UTF-8碼表中3個(gè)字節(jié)),先查表,再返回字符.只能處理字符數(shù)據(jù),純文本有心考慮使用字符流

字節(jié)流 --讀到一個(gè)字節(jié)就返回一個(gè)字節(jié),可以處理所有數(shù)據(jù)類型

體系

基本的功能就是讀和寫(xiě)

1.字符流小結(jié):

close() --資源的釋放

FileReader除了自己的構(gòu)造函數(shù)外沒(méi)有特有的方法:

用于讀取文本文件的流對(duì)象

用于關(guān)聯(lián)文本文件

構(gòu)造函數(shù)FileReader(String fileName) --在讀取流對(duì)象初始化時(shí),必須制定一個(gè)被讀取的文件,如果文件不存在則會(huì)發(fā)生FileNotFoundException異常

Writer中常見(jiàn)的方法:

write() --將一個(gè)字符寫(xiě)入到流中

write(char[]) --將一個(gè)字符數(shù)組寫(xiě)入到流中

flush() --刷新流,將流中的數(shù)據(jù)刷新到目的地中,流還存在

close() --關(guān)閉資源,關(guān)閉前會(huì)先調(diào)用flush()

FileWriter除了自己的構(gòu)造函數(shù)外沒(méi)有特有的方法:

用于處理文本文件

沒(méi)有默認(rèn)的編碼表

有臨時(shí)緩沖

構(gòu)造函數(shù),在寫(xiě)入流對(duì)象初始化時(shí)必須要有一個(gè)存儲(chǔ)數(shù)據(jù)的目的地

構(gòu)造函數(shù)FileWriter(StringfileName)

在指定位置創(chuàng)建一個(gè)文件,如存在則覆蓋

FileWriter(String fileName,Boolean append) --當(dāng)傳入類型值為true時(shí),會(huì)在指定文件末尾處進(jìn)行數(shù)據(jù)的讀寫(xiě)

字符流的緩沖區(qū):

緩沖區(qū)的出現(xiàn)提高了對(duì)流的操作效率

原理:其實(shí)就是講數(shù)組進(jìn)行封裝

BufferedWriter --特有方法newLine(),跨平臺(tái)的換行符

BufferedReader --特有方法readLine(),一次讀一行,到行標(biāo)記之前的字符數(shù)據(jù)作為字符串返回,讀到末尾返回null

緩沖的存在是為了增強(qiáng)流的功能而存在,簡(jiǎn)歷緩沖必須先有流.并將流作為參數(shù)傳遞給緩沖區(qū)的構(gòu)造函數(shù)

readLine()方法原理:本質(zhì)使用read()方法,每一次讀到一個(gè)字符不進(jìn)行具體操作,先進(jìn)行臨時(shí)存儲(chǔ),讀到回車(chē)標(biāo)記時(shí),將臨時(shí)容器中存儲(chǔ)的數(shù)據(jù)一次性返回

2.字節(jié)流小節(jié): InputStream(讀) OutputStream(寫(xiě)) 可以操作任何數(shù)據(jù)類型,字符流使用char[],而字節(jié)流使用的是byte[]. 3.轉(zhuǎn)換流小結(jié):

特點(diǎn):字節(jié)流和字符流之間的橋梁,該流對(duì)象可以對(duì)讀取到的字節(jié)數(shù)據(jù)進(jìn)行指定編碼表的編碼轉(zhuǎn)換

用處:當(dāng)字節(jié)和字符之間有轉(zhuǎn)換動(dòng)作的時(shí)候,流操作的數(shù)據(jù)需要進(jìn)行編碼表的指定時(shí)

對(duì)象:

--InputStreamReader:字節(jié)到字符的橋梁

--OutputStreamWriter:字符到字節(jié)的橋梁

說(shuō)明:

--這兩個(gè)對(duì)象是字符流體系中的成員,他們有轉(zhuǎn)換的作用,而本身又是字符流,所以在new的時(shí)候需要傳入字節(jié)流對(duì)象

--轉(zhuǎn)換流中的read方法已經(jīng)融入編碼表

--操作文本文件的FileReader直接繼承InputStreamReader就可以直接操作文本問(wèn)價(jià)中的字符數(shù)據(jù)了

--FileReader操作文本文檔時(shí),使用默認(rèn)編碼表,如果需要指定編碼表,必須使用轉(zhuǎn)換流

構(gòu)造函數(shù):

--InputStreamReader(InputStream) 默認(rèn)的編碼表GBK

--InputStreamReader(InputStream,String charset) 可以通過(guò)charsetr參數(shù)指定編碼

--OutputStreamWriter(OutputStream) 默認(rèn)的編碼表GBK

--OutputStreamWriter(OutputStream,String charset) 可以通過(guò)charsetr參數(shù)指定編碼

流操作的基本規(guī)律

明確數(shù)據(jù)源(鍵盤(pán)System.in,硬盤(pán),File開(kāi)頭的流對(duì)象,內(nèi)存(數(shù)組))和數(shù)據(jù)目的(控制臺(tái)System.out,硬盤(pán),File開(kāi)頭的流對(duì)象,內(nèi)存(數(shù)組))

--其實(shí)是為了明確是輸出流還是輸入流

明確操作數(shù)據(jù)是否是純文本數(shù)據(jù)

更多內(nèi)容訪問(wèn)?java進(jìn)階_高老四

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末习寸,一起剝皮案震驚了整個(gè)濱河市搏熄,隨后出現(xiàn)的幾起案子掐禁,更是在濱河造成了極大的恐慌,老刑警劉巖啄栓,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異狂巢,居然都是意外死亡延窜,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)腺办,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)焰手,“玉大人,你說(shuō)我怎么就攤上這事怀喉∈槠蓿” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵躬拢,是天一觀的道長(zhǎng)驻子。 經(jīng)常有香客問(wèn)我,道長(zhǎng)估灿,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任缤剧,我火速辦了婚禮馅袁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘荒辕。我一直安慰自己汗销,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布抵窒。 她就那樣靜靜地躺著弛针,像睡著了一般。 火紅的嫁衣襯著肌膚如雪李皇。 梳的紋絲不亂的頭發(fā)上削茁,一...
    開(kāi)封第一講書(shū)人閱讀 51,182評(píng)論 1 299
  • 那天宙枷,我揣著相機(jī)與錄音,去河邊找鬼茧跋。 笑死慰丛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瘾杭。 我是一名探鬼主播诅病,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼粥烁!你這毒婦竟也來(lái)了贤笆?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤讨阻,失蹤者是張志新(化名)和其女友劉穎芥永,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體变勇,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恤左,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搀绣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片飞袋。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖链患,靈堂內(nèi)的尸體忽然破棺而出巧鸭,到底是詐尸還是另有隱情,我是刑警寧澤麻捻,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布纲仍,位于F島的核電站,受9級(jí)特大地震影響贸毕,放射性物質(zhì)發(fā)生泄漏郑叠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一明棍、第九天 我趴在偏房一處隱蔽的房頂上張望乡革。 院中可真熱鬧,春花似錦摊腋、人聲如沸沸版。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)视粮。三九已至,卻和暖如春橙凳,著一層夾襖步出監(jiān)牢的瞬間蕾殴,已是汗流浹背笑撞。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留区宇,地道東北人娃殖。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像议谷,于是被迫代替她去往敵國(guó)和親炉爆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

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

  • tags:io categories:總結(jié) date: 2017-03-28 22:49:50 不僅僅在JAVA領(lǐng)...
    行徑行閱讀 2,174評(píng)論 0 3
  • 概述: 1卧晓、IO流:即Input Output的縮寫(xiě)芬首。 2、特點(diǎn):1)IO流用來(lái)處理設(shè)備間的數(shù)據(jù)傳輸逼裆。2)Java...
    玉圣閱讀 1,249評(píng)論 0 3
  • 1 IO(二)No19 【 緩沖流:內(nèi)置了緩沖區(qū)郁稍,對(duì)現(xiàn)有的流對(duì)象進(jìn)行了封裝,實(shí)現(xiàn)了高效的讀寫(xiě)操作并增強(qiáng)了功能 ...
    征程_Journey閱讀 712評(píng)論 0 1
  • 一胜宇、流的概念和作用耀怜。 流是一種有順序的,有起點(diǎn)和終點(diǎn)的字節(jié)集合桐愉,是對(duì)數(shù)據(jù)傳輸?shù)目偝苫虺橄蟛破啤<磾?shù)據(jù)在兩設(shè)備之間的傳輸...
    布魯斯不吐絲閱讀 10,035評(píng)論 2 95
  • Stream概述 Stream是一個(gè)數(shù)據(jù)流,可以從它讀取數(shù)據(jù)或?qū)懭霐?shù)據(jù)从诲。它是連接數(shù)據(jù)源或數(shù)據(jù)目的地左痢,例如文件,網(wǎng)絡(luò)...
    獅_子歌歌閱讀 708評(píng)論 1 2