<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

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 亚洲综合国产精品| 精品亚洲一区二区| 亚洲欧美综合精品成人导航| 18禁无遮挡无码国产免费网站| 亚洲av永久无码精品秋霞电影影院| 三年在线观看免费观看完整版中文 | 国产免费不卡v片在线观看| 亚洲国产精品日韩在线| 亚洲高清免费在线观看| 亚洲一区在线观看视频| 在线a毛片免费视频观看| 亚洲AV无码专区亚洲AV桃| 国产一区二区三区免费看| 一级毛片免费毛片毛片| 亚洲高清专区日韩精品| 免费看又黄又无码的网站| 亚洲噜噜噜噜噜影院在线播放 | 亚洲精品黄色视频在线观看免费资源| 一级毛片**免费看试看20分钟 | 日本亚洲高清乱码中文在线观看| 亚洲AV日韩AV永久无码久久| 免费黄网站在线观看| 亚洲经典在线中文字幕| 日韩一级在线播放免费观看| 一级毛片正片免费视频手机看| 亚洲熟女一区二区三区| 最近最好最新2019中文字幕免费| 亚洲国产精品无码久久久| 国产精品嫩草影院免费| 91在线视频免费观看| 亚洲日韩乱码中文无码蜜桃臀| 午夜电影免费观看| 中文字幕无线码中文字幕免费| 99久久亚洲精品无码毛片| 免费看美女被靠到爽的视频| 中文字幕免费在线播放| 久久精品国产亚洲av麻豆蜜芽| 全黄a免费一级毛片人人爱| 外国成人网在线观看免费视频| 亚洲youwu永久无码精品| 国产精品亚洲аv无码播放|