<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

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

    首先總結一下IO類

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

    ?FileInputStream
    ?BufferedInputStream

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


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

    ?7
    ?8 ?? boolean ?eof? = ? false ;
    ?9 ?? int ?intChar? = ? 0 ;
    10
    11 ?? // 獲得對源文件到的連接
    12 ??File?source? = ? new ?FileSource(String?sourceName);
    13
    14 ?? // 讓輸入流與文件關聯起來,同時使用緩沖提高效率
    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 // 以上的方式指示對基于字符的文件有作用,如果換成DOC文件拷貝以后就全是亂碼
    36 // 所以下面會介紹如何通過給予字節流的方法完整的復制源文件
    37


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


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

    ????
    // 文件輸入流????????
    ?????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 閱讀(2096) 評論(2)  編輯  收藏 所屬分類: J2SE基礎學習


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

    常用鏈接

    留言簿(5)

    隨筆分類(80)

    收藏夾(1)

    最新隨筆

    積分與排名

    • 積分 - 58037
    • 排名 - 897

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 欧洲精品码一区二区三区免费看| 亚洲大香人伊一本线| 国产亚洲精品美女| 国产男女猛烈无遮挡免费视频网站| 亚洲综合偷自成人网第页色| 无码视频免费一区二三区 | 福利免费观看午夜体检区| 久久精品国产亚洲av影院| 日本xxxx色视频在线观看免费| 久久青草亚洲AV无码麻豆| 免费国产污网站在线观看15| 亚洲综合国产精品| www视频在线观看免费| 国产精品亚洲午夜一区二区三区| 日韩毛片免费无码无毒视频观看 | 免费人成在线观看视频高潮| 久久精品国产亚洲av麻| 91精品免费不卡在线观看| 亚洲av无码不卡久久| 国产一级淫片a免费播放口之| 免费夜色污私人影院网站电影| 超清首页国产亚洲丝袜| 一级特黄aa毛片免费观看| 亚洲二区在线视频| 日韩免费一区二区三区| 亚洲免费日韩无码系列| 亚洲人成电影福利在线播放| 歪歪漫画在线观看官网免费阅读| 精品国产亚洲第一区二区三区| 亚洲一区二区三区无码影院| 久久精品视频免费| 亚洲字幕AV一区二区三区四区 | 国产国拍亚洲精品mv在线观看| 精品成在人线AV无码免费看 | 亚洲人成网址在线观看| 在线观看免费成人| 东北美女野外bbwbbw免费| 亚洲丰满熟女一区二区v| 亚洲精品无码成人片在线观看 | 一本色道久久88—综合亚洲精品| 亚洲区小说区图片区|