2019-06-03

IO流技術(shù):

目的:將數(shù)據(jù)源讀取到目的地

原理:從中搭建管道侧巨,將數(shù)據(jù)源數(shù)據(jù)通過管道輸送給目的地拨拓。

四大抽象類:

輸入流:1.inputstream,2.reader

//實(shí)現(xiàn)類:FileInputStream? ?FileReader

輸出流:3.outputstream,4.writer

//實(shí)現(xiàn)類:FileOutputStream? FileWriter

?文件字節(jié)流:FileInputStream? ??FileOutputStream?

FileInputStream常用方法:

abstract int read( ); ?從此輸入流中讀取下一個(gè)數(shù)據(jù)字節(jié)庆尘。

int read( byte b[ ] ); 從此輸入流中將 byte.length 個(gè)字節(jié)的數(shù)據(jù)讀入一個(gè) byte 數(shù)組中撑教。

int read( byte b[ ], int off, int len ); 從此輸入流中將 len 個(gè)字節(jié)的數(shù)據(jù)讀入一個(gè) byte 數(shù)組中汽馋。

int available( ); 返回下一次對(duì)此輸入流調(diào)用的方法可以不受阻塞地從此輸入流讀攘柰!(或跳過)的估計(jì)剩余字節(jié)數(shù)粱年。

close(

); 關(guān)閉此輸入流并釋放與此流關(guān)聯(lián)的所有系統(tǒng)資源。

FileOutputStream 常用方法:

close() 關(guān)閉此輸出流并釋放與此流有關(guān)的所有系統(tǒng)資源罚拟。

flush() 刷新此輸出流台诗,并強(qiáng)制將所有已緩沖的輸出字節(jié)寫入該流中。

write(byte[] b) 將 b.length 個(gè)字節(jié)寫入此輸出流赐俗。

write(byte[] b, int off, int len) 將指定 byte 數(shù)組中從偏移量 off 開始的 len 個(gè)字節(jié)寫入此輸出流拉队。

write(int b) 將指定 byte 寫入此輸出流

使用字節(jié)流實(shí)現(xiàn)文件復(fù)制:

原理:


復(fù)制的步驟:1.搭建輸入流管道 2.寫入數(shù)據(jù)3.關(guān)閉輸入流管道 4.搭建輸出流管道 5.讀取數(shù)據(jù)??6.關(guān)閉輸出流管道

代碼:

結(jié)果:

?文件字符流:同文件字節(jié)流方法,只是字節(jié)流不能很好的處理Unicode字符阻逮,經(jīng)常會(huì)出現(xiàn)“亂碼”現(xiàn)象粱快。字符流則可以處理漢子等字符,不會(huì)出現(xiàn)亂碼叔扼。

緩沖字節(jié)流:

作用:提高訪問的效率事哭。

原理:讀取數(shù)據(jù)時(shí),數(shù)據(jù)按塊讀入緩沖區(qū)币励,其后的讀操作則直接訪問緩沖區(qū)慷蠕;寫入數(shù)據(jù)時(shí),首先寫入緩沖區(qū)食呻,當(dāng)緩沖區(qū)滿時(shí)流炕,其中的數(shù)據(jù)寫入所連接的輸出流澎现。寫入時(shí)直接訪問緩沖區(qū)。

代碼:



結(jié)果通字節(jié)流復(fù)制每辟。

?轉(zhuǎn)換流:

用來實(shí)現(xiàn)將字節(jié)流轉(zhuǎn)化成字符流剑辫。

? inputstream ------>? ? InputStreamReader? ----->rerder

?outputstream----> OutputStreamWriter----->writer

打印流:PrintStream? 與PrintWriter

一:PrintStream

PrintStream提供了一系列的print()和println(),可以實(shí)現(xiàn)將基本數(shù)據(jù)類型格式化成字符串輸出渠欺。對(duì)象類型將先調(diào)用toString()妹蔽,然后輸出該方法返回的字符串

[if !supportLists]2)???? [endif]System.out就是PrintStream的一個(gè)實(shí)例,代表顯示器

[if !supportLists]3)???? [endif]System.err 也是PrintStream的一個(gè)實(shí)例挠将,代表顯示器

[if !supportLists]4)???? [endif]PrintStream的輸出功能非常強(qiáng)大胳岂,通常需要輸出文本內(nèi)容,都可以將輸出流包裝成PrintStream后進(jìn)行輸出

[if !supportLists]5)???? [endif]PrintStream的方法都不拋出IOException

二?PrintWriter:

[if !supportLists]1)???? [endif]PrintStream的對(duì)應(yīng)字符流舔稀,功能相同乳丰,方法對(duì)應(yīng)。

[if !supportLists]2)???? [endif]PrintWriter的方法也不拋出IOException

[if !supportLists]3)???? [endif]復(fù)制文件時(shí)可以使用PrintWriter代替BufferedWriter完成内贮,更簡(jiǎn)單

PrintStream? 與PrintWriter區(qū)別:

PrintStream不用刷新和關(guān)閉产园,PrintWriter必須刷洗和關(guān)閉。

數(shù)據(jù)流:

[if !supportLists]1)???? [endif]提供了可以存取所有Java基礎(chǔ)類型數(shù)據(jù)(如:int夜郁,double 等)和String的方法什燕。

[if !supportLists]2)???? [endif]處理流,只針對(duì)字節(jié)流竞端,二進(jìn)制文件

[if !supportLists]3)???? [endif]輸入流鏈和輸出流鏈

[if !supportLists]4)???? [endif][if !vml][endif]注意:只要關(guān)閉上層流即可


代碼:

結(jié)果:


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末屎即,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子婶熬,更是在濱河造成了極大的恐慌剑勾,老刑警劉巖埃撵,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赵颅,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡暂刘,警方通過查閱死者的電腦和手機(jī)饺谬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谣拣,“玉大人募寨,你說我怎么就攤上這事∩” “怎么了拔鹰?”我有些...
    開封第一講書人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)贵涵。 經(jīng)常有香客問我列肢,道長(zhǎng)恰画,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任瓷马,我火速辦了婚禮拴还,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘欧聘。我一直安慰自己片林,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開白布怀骤。 她就那樣靜靜地躺著费封,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蒋伦。 梳的紋絲不亂的頭發(fā)上孝偎,一...
    開封第一講書人閱讀 52,713評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音凉敲,去河邊找鬼衣盾。 笑死,一個(gè)胖子當(dāng)著我的面吹牛爷抓,可吹牛的內(nèi)容都是我干的势决。 我是一名探鬼主播,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼蓝撇,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼果复!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起渤昌,我...
    開封第一講書人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤虽抄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后独柑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迈窟,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年忌栅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了车酣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡索绪,死狀恐怖湖员,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情瑞驱,我是刑警寧澤娘摔,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站唤反,受9級(jí)特大地震影響凳寺,放射性物質(zhì)發(fā)生泄漏嫡丙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一读第、第九天 我趴在偏房一處隱蔽的房頂上張望曙博。 院中可真熱鬧,春花似錦怜瞒、人聲如沸父泳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惠窄。三九已至,卻和暖如春漾橙,著一層夾襖步出監(jiān)牢的瞬間杆融,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工霜运, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脾歇,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓淘捡,卻偏偏與公主長(zhǎng)得像藕各,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子焦除,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

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

  • Java基礎(chǔ)面試 Java基礎(chǔ)面試... 1 1. Java基礎(chǔ)知識(shí)... 5 1.1. Java源程序的擴(kuò)展名是...
    來著何人閱讀 1,192評(píng)論 0 1
  • 一激况、基礎(chǔ)知識(shí):1、JVM膘魄、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機(jī)...
    殺小賊閱讀 2,390評(píng)論 0 4
  • Lua 5.1 參考手冊(cè) by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,836評(píng)論 0 38
  • 五乌逐、IO流 1、IO流概述 (1)用來處理設(shè)備(硬盤创葡,控制臺(tái)浙踢,內(nèi)存)間的數(shù)據(jù)。(2)java中對(duì)數(shù)據(jù)的操作都是通過...
    佘大將軍閱讀 513評(píng)論 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5蹈丸? 答:HTML5是最新的HTML標(biāo)準(zhǔn)成黄。 注意:講述HT...
    kismetajun閱讀 27,522評(píng)論 1 45