10.4-全棧Java筆記:常用流詳解(二)

上節(jié)我們講到「Java中常用流:文件字節(jié)流和字節(jié)數(shù)組流」肘习,本節(jié)我們繼續(xù)走起~

?緩沖流

BufferedInputStream和BufferedOutputStream這兩個流是處理流盒卸,通過內(nèi)部緩存數(shù)組來提高操作流的效率。

【示例1】使用緩沖流實現(xiàn)文件的高效率復制操作

public?class?Demo06 {

????public?static?void?main(String[]?args) {

????????new?Demo06().copyFile("d:/a.txt",?"d:/b.txt");

??? }

????void?copyFile(String?src,String?dec){

??????? FileInputStream?fis?=?null;

??????? BufferedInputStream?bis?=?null;

??????? FileOutputStream?fos?=?null;

??????? BufferedOutputStream?bos?=?null;

????????int?temp?= 0;

????????try?{

?????????????fis?=?new?FileInputStream(src);

?????????????bis?=?new?BufferedInputStream(fis);

?????????????fos?=?new?FileOutputStream(dec);

?????????????bos?=?new?BufferedOutputStream(fos);

?????????????while((temp=bis.read())!=-1){

?????????????????bos.write(temp);

???????????? }

??????? }?catch?(Exception?e) {

?????????????e.printStackTrace();

??????? }?finally{

??????????//********增加處理流后狂丝,注意流的關(guān)閉順序!“后開的先關(guān)閉!”

?????????????try?{

?????????????????if(bos!=null){

?????????????????????bos.close();

???????????????? }

???????????? }?catch?(IOException?e) {

?????????????????e.printStackTrace();

???????????? }

??? ????????try?{

?????????????????if(bis!=null){

?????????????????????bis.close();

???????????????? }

???????????? }?catch?(IOException?e) {

?????????????????e.printStackTrace();

???????????? }

?????????????try?{

?????????????????if(fos!=null){

?????????????????????fos.close();

???????????????? }

???????????? }?catch?(IOException?e) {

?????????????????e.printStackTrace();

???????????? }

?????????????try?{

?????????????????if(fis!=null){

?????????????????????fis.close();

???????????????? }

???????????? }?catch?(IOException?e) {

?????????????????e.printStackTrace();

???????????? }

??????? }

??? }

}

示例1 運行結(jié)果

數(shù)據(jù)流將“基本數(shù)據(jù)類型變量”作為數(shù)據(jù)源肆糕,從而允許程序以與機器無關(guān)方式從底層輸入輸出流中操作java基本數(shù)據(jù)類型吊档。??

DataInputStream和DataOutputStream提供了可以存取與機器無關(guān)的所有Java基礎(chǔ)類型數(shù)據(jù)(如:int篙议,double?等)的方法。?

【示例2DataInputStreamDataOutputStream的使用

package?com.bjsxt.io;

import?java.io.*;

public?class?TestDataStream {

????public?static?void?main(String[]?args) {

??????? DataOutputStream?dos?=?null;

??????? DataInputStream?dis?=?null;

??????? FileOutputStream?fos?=?null;

??????? FileInputStream ?fis?=?null;

????????try?{

?????????????fos?=?new?FileOutputStream("D:/data.txt");

?????????????fis?=?new?FileInputStream("D:/data.txt");

?????????????dos?=?new?DataOutputStream(new?BufferedOutputStream(fos));

?????????????dis?=?new?DataInputStream(new?BufferedInputStream(fis));

?????????????//將如下數(shù)據(jù)寫入到文件中

?????????????dos.writeDouble(Math.random());

?????????????dos.writeBoolean(true);

?????????????dos.writeInt(10);

?????????????dos.writeChar('a');

?????????????dos.flush();?? ??//將流中數(shù)據(jù)寫入到文件中

?????????????//從文件中直接讀取基本數(shù)據(jù)

???????????? System.out.println("double: "?+?dis.readDouble());

???????????? System.out.println("boolean: "?+?dis.readBoolean());

???????????? System.out.println("int: "?+?dis.readInt());

???????????? System.out.println("char: "?+?dis.readChar());

??????? }?catch?(IOException?e) {

?????????????e.printStackTrace();

??????? }?finally?{

?????????????try?{

?????????????????if(dos!=null){

?????????????????????dos.close();

???????????????? }

???????????? }?catch?(IOException?e) {

?????????????????e.printStackTrace();

???????????? }

?????????????try?{

?????????????????if(dis!=null){

?????????????????????dis.close();

???????????????? }

???????????? }?catch?(IOException?e) {

?????????????????e.printStackTrace();

???????????? }

?????????????try?{

?????????????????if(fos!=null){

?????????????????????fos.close();

???????????????? }

???????????? }?catch?(IOException?e) {

?????????????????e.printStackTrace();

???????????? }

?????????????try?{

?????????????????if(fis!=null){

?????????????????????fis.close();

???????????????? }

???????????? }?catch?(IOException?e) {

?????????????????e.printStackTrace();

???????????? }

??????? }

??? }

}





「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記怠硼。筆者江湖人稱 Mr. G鬼贱,10年Java研發(fā)經(jīng)驗,曾在神州數(shù)碼香璃、航天院某所研發(fā)中心從事軟件設(shè)計及研發(fā)工作这难,從小白逐漸做到工程師、高級工程師增显、架構(gòu)師雁佳。精通Java平臺軟件開發(fā)脐帝,精通JAVAEE,熟悉各種流行開發(fā)框架糖权。


? 筆記包含從淺入深的六大部分:

? A-Java入門階段

? B-數(shù)據(jù)庫從入門到精通

? C-手刃移動前端和Web前端

? D-J2EE從了解到實戰(zhàn)

? E-Java高級框架精解

? F-Linux和Hadoop?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末堵腹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子星澳,更是在濱河造成了極大的恐慌疚顷,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件禁偎,死亡現(xiàn)場離奇詭異腿堤,居然都是意外死亡,警方通過查閱死者的電腦和手機如暖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門笆檀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人盒至,你說我怎么就攤上這事酗洒。” “怎么了枷遂?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵樱衷,是天一觀的道長。 經(jīng)常有香客問我酒唉,道長矩桂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任痪伦,我火速辦了婚禮侄榴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘流妻。我一直安慰自己牲蜀,他們只是感情好,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布绅这。 她就那樣靜靜地躺著涣达,像睡著了一般。 火紅的嫁衣襯著肌膚如雪证薇。 梳的紋絲不亂的頭發(fā)上度苔,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音浑度,去河邊找鬼寇窑。 笑死,一個胖子當著我的面吹牛箩张,可吹牛的內(nèi)容都是我干的甩骏。 我是一名探鬼主播窗市,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼饮笛!你這毒婦竟也來了咨察?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤福青,失蹤者是張志新(化名)和其女友劉穎摄狱,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體无午,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡媒役,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了宪迟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酣衷。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖次泽,靈堂內(nèi)的尸體忽然破棺而出鸥诽,到底是詐尸還是另有隱情,我是刑警寧澤箕憾,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站拳昌,受9級特大地震影響袭异,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜炬藤,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一御铃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧沈矿,春花似錦上真、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至陵像,卻和暖如春就珠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背醒颖。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工妻怎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人泞歉。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓逼侦,卻偏偏與公主長得像匿辩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子榛丢,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

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