java中的IO字節(jié)流

OutputStream字節(jié)輸出流

java.io.OutputStream抽象類是表示字節(jié)輸出流的所有類的超類谨履,將指定的字節(jié)信息寫出到目的地狮含。它定義了字節(jié)輸出流的基本共性功能方法京痢。

1由驹、public void close() :關(guān)閉此輸出流并釋放與此流相關(guān)聯(lián)的任何系統(tǒng)資源邓厕。?

2草讶、public void flush() :刷新此輸出流并強(qiáng)制任何緩沖的輸出字節(jié)被寫出洽糟。?

3、public void write(byte[] b):將 b.length字節(jié)從指定的字節(jié)數(shù)組寫入此輸出流堕战。?

注意:1坤溃、如果寫的第一個字節(jié)是正數(shù)(0~127),那么顯示的時候會查詢ASCII碼表

? ? ? ? ? ?2嘱丢、如果寫的第一個字節(jié)是負(fù)數(shù)薪介,那第一個字節(jié)會和第二個字節(jié),兩個字節(jié)組成一個中文顯示越驻,查詢系統(tǒng)默認(rèn)碼表(GBK)

4汁政、public void write(byte[] b, int off, int len) :從指定的字節(jié)數(shù)組寫入 len字節(jié),從偏移量 off開始輸出到此輸出流缀旁。?

寫入字符串的方法:使用byte[] getBytes() 把字符串轉(zhuǎn)換為字節(jié)數(shù)組记劈,然后調(diào)用write方法

5、public abstract void write(int b) :將指定的字節(jié)輸出流并巍。

注意:close方法目木,當(dāng)完成流的操作時,必須調(diào)用此方法懊渡,釋放系統(tǒng)資源嘶窄。

FileOutputStream

java.io.FileOutputStream extends OutputStream 文件輸出流,用于將數(shù)據(jù)寫出到文件距贷。

構(gòu)造方法:

public FileOutputStream(File file):創(chuàng)建文件輸出流以寫入由指定的 File對象表示的文件柄冲。

public FileOutputStream(String name): 創(chuàng)建文件輸出流以指定的名稱寫入文件。

構(gòu)造方法作用:1忠蝗、創(chuàng)建一個FileOutputStream對象

? ? ? ? ? ? ? ? ? ? ? ? ?2现横、會根據(jù)構(gòu)造方法中傳遞的文件/文件路徑,創(chuàng)建一個空的文件

? ? ? ? ? ? ? ? ? ? ? ? ?3、會把FileOutputStream對象指向創(chuàng)建好的文件

寫入數(shù)據(jù)的原理:

? ? java程序 --> JVM(java虛擬機(jī)) --> OS(操作系統(tǒng)) --> OS調(diào)用寫數(shù)據(jù)方法 --> 把數(shù)據(jù)寫入到文件中

字節(jié)輸出流使用步驟:

? ? 1戒祠、創(chuàng)建一個FileOutputStream對象骇两,構(gòu)造方法中傳遞寫入數(shù)據(jù)的目的地

? ? 2、調(diào)用FileOutputStream對象中的方法write姜盈,把數(shù)據(jù)寫入到文件中

? ? 3低千、釋放資源(流使用會占用一定的內(nèi)存,使用完畢要把內(nèi)存清空馏颂,提高程序效率)

數(shù)據(jù)追加續(xù)寫

使用兩個參數(shù)的構(gòu)造方法:

public FileOutputStream(File file, boolean append)`: 創(chuàng)建文件輸出流以寫入由指定的 File對象表示的文件示血。

public FileOutputStream(String name, boolean append)`: 創(chuàng)建文件輸出流以指定的名稱寫入文件。

其中:File file救拉、String name:寫入數(shù)據(jù)的目的地

? ? ? ? ? ?append:追加寫開關(guān)难审,true(創(chuàng)建對象不會覆蓋原文件,繼續(xù)在文件的末尾追加寫數(shù)據(jù))亿絮,false(創(chuàng)建一個新文件告喊,覆蓋原文件)

寫換行:

需要換行符,其中windows(“\r\n”)派昧、linux(“/n”)黔姜、mac(“/r”)

InputStream字節(jié)輸入流

java.io.InputStream抽象類是表示字節(jié)輸入流的所有類的超類,可以讀取字節(jié)信息到內(nèi)存中蒂萎。它定義了字節(jié)輸入流的基本共性功能方法秆吵。

public void close() :關(guān)閉此輸入流并釋放與此流相關(guān)聯(lián)的任何系統(tǒng)資源。? ?

public abstract int read(): 從輸入流讀取數(shù)據(jù)的下一個字節(jié)岖是,讀取到文件的末尾返回-1帮毁。

public int read(byte[] b): 從輸入流中讀取一些字節(jié)數(shù)实苞,并將它們存儲到字節(jié)數(shù)組 b中 豺撑。

注意:close方法,當(dāng)完成流的操作時黔牵,必須調(diào)用此方法聪轿,釋放系統(tǒng)資源。

FileInputStream

java.io.FileInputStream extends?InputStream 類是文件輸入流猾浦,從文件中讀取字節(jié)陆错。(把硬盤文件中的數(shù)據(jù)讀取到內(nèi)存中使用)

構(gòu)造方法:

FileInputStream(File file): 通過打開與實(shí)際文件的連接來創(chuàng)建一個 FileInputStream ,該文件由文件系統(tǒng)中的 File對象 file命名金赦。

FileInputStream(String name): 通過打開與實(shí)際文件的連接來創(chuàng)建一個 FileInputStream 音瓷,該文件由文件系統(tǒng)中的路徑名 name命名。?

構(gòu)造方法的作用:

1夹抗、創(chuàng)建一個FileInputStream對象

2绳慎、把FileInputStream對象指向構(gòu)造方法中要讀取的文件

讀取數(shù)據(jù)的原理:

? ? java程序 --> JVM(java虛擬機(jī)) --> OS(操作系統(tǒng)) --> OS調(diào)用讀取數(shù)據(jù)方法 --> 讀取數(shù)據(jù)

字節(jié)輸入流使用步驟:

????1、創(chuàng)建一個FileInputStream對象,構(gòu)造方法中綁定要讀取的數(shù)據(jù)源

????2杏愤、調(diào)用FileInputStream對象中的方法read靡砌,讀取文件

? ? 3、釋放資源

字節(jié)輸入流一次讀取一個字節(jié):int read()

其中:方法的返回值int是每次讀取到的字節(jié)

字節(jié)輸入流一次讀取多個字節(jié):int read(byte[] b)珊楼;

其中:1通殃、參數(shù)byte[]的作用是起到緩沖的作用,存儲每次讀取到的多個字節(jié)厕宗,數(shù)組的長度一般定義1024(1kb)或者1024的整數(shù)倍

? ? ? ? ? ?2画舌、方法的返回值int是每次讀取的有效字節(jié)個數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市媳瞪,隨后出現(xiàn)的幾起案子骗炉,更是在濱河造成了極大的恐慌,老刑警劉巖蛇受,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件句葵,死亡現(xiàn)場離奇詭異,居然都是意外死亡兢仰,警方通過查閱死者的電腦和手機(jī)乍丈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來把将,“玉大人轻专,你說我怎么就攤上這事〔於祝” “怎么了请垛?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長洽议。 經(jīng)常有香客問我宗收,道長,這世上最難降的妖魔是什么亚兄? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任混稽,我火速辦了婚禮,結(jié)果婚禮上审胚,老公的妹妹穿的比我還像新娘匈勋。我一直安慰自己,他們只是感情好膳叨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布洽洁。 她就那樣靜靜地躺著,像睡著了一般菲嘴。 火紅的嫁衣襯著肌膚如雪饿自。 梳的紋絲不亂的頭發(fā)上碎浇,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機(jī)與錄音璃俗,去河邊找鬼奴璃。 笑死,一個胖子當(dāng)著我的面吹牛城豁,可吹牛的內(nèi)容都是我干的苟穆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼唱星,長吁一口氣:“原來是場噩夢啊……” “哼雳旅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起间聊,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤攒盈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后哎榴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體型豁,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年尚蝌,在試婚紗的時候發(fā)現(xiàn)自己被綠了迎变。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡飘言,死狀恐怖衣形,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情姿鸿,我是刑警寧澤谆吴,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站苛预,受9級特大地震影響句狼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜碟渺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一鲜锚、第九天 我趴在偏房一處隱蔽的房頂上張望突诬。 院中可真熱鬧苫拍,春花似錦、人聲如沸旺隙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蔬捷。三九已至垄提,卻和暖如春榔袋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背铡俐。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工凰兑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人审丘。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓吏够,卻偏偏與公主長得像,于是被迫代替她去往敵國和親滩报。 傳聞我的和親對象是個殘疾皇子锅知,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評論 2 355

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