<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 84,  comments - 54,  trackbacks - 0

    一直覺得輸入輸出流是個(gè)令人頭痛的問題,今天下午,看完了《21》天上的一個(gè)例子,總結(jié)了一下。

    首先總結(jié)一下IO類

    ? // 一下兩組類都是基于字節(jié)流的,例如一些圖形數(shù)據(jù)文件的處理
    ?FileOutputStream
    ?BufferedOutputStream

    ?FileInputStream
    ?BufferedInputStream

    // 而以下兩組是基于字符流的處理效率會(huì)更高一些
    ?FileReader
    ?BufferedReader
    ?InputStreamReader
    ?
    ?FileWriter
    ?BufferedWriter
    ?OutputStreamWriter


    ?1 ????下面這個(gè)例子是拷貝一個(gè)文件到另外一個(gè)文件,文件的形式有兩種一種是基于字符型的如:txt文檔,或java文檔。
    ?2 ????而另一種是基于非字符的,而是用字節(jié)處理起來(lái)更方便。
    ?3
    ?4 /*
    ?5 *以下這段代碼是拷貝一個(gè)txt文檔到另一個(gè)位置
    ?6 */

    ?7
    ?8 ?? boolean ?eof? = ? false ;
    ?9 ?? int ?intChar? = ? 0 ;
    10
    11 ?? // 獲得對(duì)源文件到的連接
    12 ??File?source? = ? new ?FileSource(String?sourceName);
    13
    14 ?? // 讓輸入流與文件關(guān)聯(lián)起來(lái),同時(shí)使用緩沖提高效率
    15 ??FileReader?fr? = ? new ?FileReader(source);
    16 ??BufferedReader?br? = ? new ?BufferedReader(fr);
    17
    18 ??File?destination? = ? new ?File(String?destinationName);
    19 ??FileWriter?fw? = ? new ?FileWriter(destination);
    20 ??BufferedWriter?bw? = ? new ?BufferedWriter(fw);
    21
    22 ?? while ( ! eof) {
    23 ?????intChar? = ?br.read();
    24 ????? if (intChar? != ? - 1 ) {
    25 ????????bw.writer(( char )intChar);
    26 ?????}
    else {
    27 ????????eof? = ? true ;
    28 ?????}

    29 ??}

    30
    31 ??bw.flush();
    32 ??br.close();
    33 ??bw.close();
    34
    35 // 以上的方式指示對(duì)基于字符的文件有作用,如果換成DOC文件拷貝以后就全是亂碼
    36 // 所以下面會(huì)介紹如何通過給予字節(jié)流的方法完整的復(fù)制源文件
    37


    /*
    *以下是基于字節(jié)流的文件拷貝,可以兼容字符文件的拷貝,例如拷貝
    */


    ????
    boolean ?eof? = ? false ;?? // 文件是否讀取完畢
    ????? int ?intChar? = ? 0 ;???? // 文件是否已經(jīng)讀到尾

    ????
    // 文件輸入流????????
    ?????File?source? = ? new ?File(String?sourceName);
    ????FileInputStream?fis?
    = ? new ?FileInputStream(source);
    ????BufferedInputStream?bis
    = ? new ?BufferedInputStream(fis);

    ????
    // 文件輸出流
    ????File?destination? = ? new ?File(String?destinationName);
    ????FileOutputStream?fos?
    = ? new ?FileOutputStream(destination);
    ????BufferedOutputStream?bos?
    = ? new ?BufferedOutputStream(fos);

    ????
    do {
    ????????intChar?
    = ?bis.read();
    ????????
    if (intChar? != ? - 1 ) {
    ????????????bos.writer(intChar);
    ????????}
    else {
    ??????????eof?
    = ? true ;
    ????????}

    ????}
    while ( ! eof);
    ?????????
    ??????? bis.flush();
    ??????? bos.close();
    ??????? bis.close();

    posted on 2006-09-02 03:40 JavaCoffe 閱讀(2097) 評(píng)論(2)  編輯  收藏 所屬分類: J2SE基礎(chǔ)學(xué)習(xí)


    FeedBack:
    # re: 文件拷程序--小結(jié)文件輸入輸出流
    2006-09-02 12:02 | 壞孩子
    不錯(cuò)不錯(cuò).我也在看io,拷貝文件用nio效率高些  回復(fù)  更多評(píng)論
      
    # re: 文件拷程序--小結(jié)文件輸入輸出流
    2006-09-12 11:48 | FisherWang
    第二種方法簡(jiǎn)單易懂,挺不錯(cuò)的,只是不能用它去拷貝.gif,還有拷貝rar文件不能打開,文件出錯(cuò),還有就是更改源文件后重新拷貝好像不起作用  回復(fù)  更多評(píng)論
      
    <2006年9月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    常用鏈接

    留言簿(5)

    隨筆分類(80)

    收藏夾(1)

    最新隨筆

    積分與排名

    • 積分 - 58154
    • 排名 - 894

    最新評(píng)論

    閱讀排行榜

    主站蜘蛛池模板: 亚洲精品无码不卡在线播放HE| 亚洲不卡无码av中文字幕| 亚洲色无码专区一区| 亚洲精品无码久久久久久| 香港经典a毛片免费观看看| 亚洲人成网男女大片在线播放 | 亚洲午夜国产精品无码老牛影视 | 亚洲成人福利在线| 在线综合亚洲欧洲综合网站| 国产成人亚洲午夜电影| 亚洲欧美第一成人网站7777| 免费观看又污又黄在线观看| 人妻在线日韩免费视频| 国产在线精品观看免费观看| 亚洲国产精品无码久久| 亚洲熟女精品中文字幕| 免费中文字幕视频| 桃子视频在线观看高清免费视频| 久久国产免费一区二区三区| 无码囯产精品一区二区免费| 欧美a级成人网站免费| 亚洲A丁香五香天堂网| 亚洲视频在线一区| 中文字幕亚洲综合久久2| 亚洲欧美日韩一区二区三区| 国产精品免费观看视频| 热久久这里是精品6免费观看| 久久久久久曰本AV免费免费| 妻子5免费完整高清电视| 免费看国产曰批40分钟| 久久精品国产亚洲AV不卡| 亚洲午夜久久久影院伊人| 亚洲国产午夜精品理论片| 全黄A免费一级毛片| 国产精品爱啪在线线免费观看| 日韩免费精品视频| 亚洲最大激情中文字幕| 亚洲 欧洲 自拍 另类 校园| 你好老叔电影观看免费| 成年女人毛片免费播放视频m| 午夜两性色视频免费网站|