(七)字節(jié)流詳解


基本的原理寓搬、方法等與字符流類似杂彭,因此字節(jié)流相對(duì)會(huì)精簡一些
如果還有疑問請(qǐng)參考字符流詳解

1木蹬、使用字節(jié)輸出流向文件中寫入數(shù)據(jù)

import java.io.FileOutputStream;
import java.io.IOException;

public class Demo1 {
public static void main(String[] args)  throws IOException{
          writeFile();
}

        public static void writeFile() throws IOException{
        //創(chuàng)建字節(jié)輸出流對(duì)象和文件相關(guān)聯(lián)
        FileOutputStream fos = new FileOutputStream("F:\\Java.txt");
        //直接寫入文件
        fos.write("abcde".getBytes());
        //轉(zhuǎn)成的數(shù)組為[97,98,99,100,101]
        fos.close();
        }


2至耻、使用字節(jié)輸入流讀取文件中的數(shù)據(jù)——單個(gè)字節(jié)

import java.io.FileInputStream;
import java.io.IOException;

public class Demo2 {
public static void main(String[] args)  throws IOException{
          readFile();
}

        public static void readFile() throws IOException{
        FileInputStream fis = new FileInputStream("F:\\Java.txt");
        //每次讀取單個(gè)字節(jié)
        int num;
        while((num = fis.read())!=-1){//讀到文件末尾返回-1
            //num是int類型,注意轉(zhuǎn)換
            System.out.print((char)num);
            }
        fis.close();
        }



3、使用字節(jié)輸入流讀取文件中的數(shù)據(jù)——字節(jié)數(shù)組

import java.io.FileInputStream;
import java.io.IOException;

public class Demo3 {
public static void main(String[] args)  throws IOException{
          readFile2();
}

        public static void readFile2() throws IOException{
        FileInputStream fis = new FileInputStream("F:\\Java.txt");
        byte[] arr = new byte[1024];
        int num;
        while((num = fis.read(arr))!=-1){//讀到文件末尾返回-1
            //將結(jié)果轉(zhuǎn)換字符串
            System.out.print(new String(arr,0,num));
            }
        fis.close();
        }


4尘颓、使用字節(jié)輸入流讀取文件中的數(shù)據(jù)——優(yōu)化字節(jié)數(shù)組

import java.io.FileInputStream;
import java.io.IOException;

public class Demo4 {
public static void main(String[] args)  throws IOException{
          readFile3();
}
        public static void readFile3() throws IOException{
        FileInputStream fis = new FileInputStream("F:\\Java.txt");
        //返回文件的總大小走触,單位是字節(jié)
        int num = fis.available();  
        byte[] arr = new byte[num];
        /*
         * 當(dāng)數(shù)組長度和文件總大小相同時(shí)
         * 讀取一次即可
         * 不再需要循環(huán)讀取
         * 但文件太大時(shí)不適合用
         * 以防內(nèi)存溢出
         */
        int len = fis.read(arr);
        System.out.print(new String(arr,0,len));
        }
}   

5、復(fù)制一張圖片——每次讀取單個(gè)字節(jié)

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Demo5 {
public static void main(String[] args){
          copy1();
}
    
            public static void copy1() throws IOException{
            FileInputStream fis = new FileInputStream("F:\\java.jpg");
            FileOutputStream fos = new FileOutputStream("F:\\java_copy1.jpg");
            int num;
            while((num = fis.read())!=-1){
                fos.write(num);
                }
            fis.close();
            fos.close();
            }


6疤苹、復(fù)制一張圖片——使用數(shù)組讀取并處理異常

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Demo6 {
public static void main(String[] args){
          copy2();
}
            public static void copy2(){
            FileInputStream fis =null;
            FileOutputStream fos = null;    
                try {
                    fis = new FileInputStream("F:\\java.jpg");
                    fos = new FileOutputStream("F:\\java_copy2.jpg");
                    byte[] arr = new byte[1024];
                    int num;
                    while((num = fis.read(arr))!=-1){
                        fos.write(arr,0,num);
                    }       
                } catch (IOException e) {
                    e.printStackTrace();
                }finally{
                    if(fis!=null){
                        try {
                            fis.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                    if(fos!=null){
                        try {
                            fos.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }   
            }


7互广、復(fù)制一張圖片——使用字節(jié)緩沖流讀取并處理異常

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Demo7 {
public static void main(String[] args){
          copy3();
}
    
    public static void copy3(){
    BufferedInputStream bis = null;
    BufferedOutputStream bos = null;    
    try {
        bis=new BufferedInputStream(new FileInputStream("F:\\java.jpg"));
        bos = new BufferedOutputStream(new FileOutputStream("F:\\java_copy3.jpg"));
         byte[] arr = new byte[1024];
         int num;
         while((num = bis.read(arr))!=-1){
             bos.write(arr,0,num);
         }      
    } catch (IOException e) {
        e.printStackTrace();
    }finally{
        try {
            if(bis!=null){
                bis.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }       
        try {
            if(bos!=null){
                bos.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
}

版權(quán)聲明:歡迎轉(zhuǎn)載,歡迎擴(kuò)散卧土,但轉(zhuǎn)載時(shí)請(qǐng)標(biāo)明作者以及原文出處惫皱,謝謝合作!             ↓↓↓
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末尤莺,一起剝皮案震驚了整個(gè)濱河市旅敷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌缝裁,老刑警劉巖扫皱,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異捷绑,居然都是意外死亡韩脑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門粹污,熙熙樓的掌柜王于貴愁眉苦臉地迎上來段多,“玉大人,你說我怎么就攤上這事壮吩〗裕” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵鸭叙,是天一觀的道長觉啊。 經(jīng)常有香客問我,道長沈贝,這世上最難降的妖魔是什么杠人? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮宋下,結(jié)果婚禮上嗡善,老公的妹妹穿的比我還像新娘。我一直安慰自己学歧,他們只是感情好罩引,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著枝笨,像睡著了一般袁铐。 火紅的嫁衣襯著肌膚如雪揭蜒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天昭躺,我揣著相機(jī)與錄音忌锯,去河邊找鬼伪嫁。 笑死领炫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的张咳。 我是一名探鬼主播帝洪,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼脚猾!你這毒婦竟也來了葱峡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤龙助,失蹤者是張志新(化名)和其女友劉穎砰奕,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體提鸟,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡军援,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了称勋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胸哥。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖赡鲜,靈堂內(nèi)的尸體忽然破棺而出空厌,到底是詐尸還是另有隱情,我是刑警寧澤银酬,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布嘲更,位于F島的核電站,受9級(jí)特大地震影響揩瞪,放射性物質(zhì)發(fā)生泄漏赋朦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一壮韭、第九天 我趴在偏房一處隱蔽的房頂上張望北发。 院中可真熱鬧,春花似錦喷屋、人聲如沸琳拨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽狱庇。三九已至惊畏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間密任,已是汗流浹背颜启。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留浪讳,地道東北人缰盏。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像淹遵,于是被迫代替她去往敵國和親口猜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理透揣,服務(wù)發(fā)現(xiàn)济炎,斷路器,智...
    卡卡羅2017閱讀 134,704評(píng)論 18 139
  • 《ilua》速成開發(fā)手冊(cè)3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 1...
    葉染柒丶閱讀 10,797評(píng)論 0 11
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 11,007評(píng)論 6 13
  • 6月22號(hào)以來辐真,看似尋常的六月天须尚,對(duì)于每一個(gè)已經(jīng)結(jié)束高中生活的你們來說,卻絲毫也尋常不起來侍咱。 6月24號(hào)—曾經(jīng)我以...
    鄒蟲蟲閱讀 289評(píng)論 0 0
  • 食物是有生命的耐床,應(yīng)時(shí)而作,應(yīng)時(shí)而食放坏,方能恰到好處的感受食物的靈性咙咽,感受生命的美好。 四季輪轉(zhuǎn)淤年,花開花謝钧敞,采擷一掬花...
    羚羊漫步閱讀 313評(píng)論 1 2