<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

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 免费看一级一级人妻片| 免费va人成视频网站全| 亚洲色精品aⅴ一区区三区| 日韩亚洲国产综合高清| 亚洲国产精品成人久久蜜臀| 亚洲成无码人在线观看| 无码AV片在线观看免费| 亚洲av永久无码精品网站| ww在线观视频免费观看w| 亚洲成av人在片观看| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲精品视频在线免费| 久久久久久亚洲Av无码精品专口 | 久草视频在线免费| 亚洲AV无码成人精品区蜜桃| 特级做A爰片毛片免费看无码 | 无码日韩人妻AV一区免费l| 日韩高清在线免费观看| 日韩在线观看免费| 亚洲熟妇av一区二区三区漫画| 久久er国产精品免费观看2| 亚洲综合自拍成人| 18女人水真多免费高清毛片| 亚洲码一区二区三区| 波多野结衣久久高清免费 | 亚洲日韩精品无码专区加勒比☆ | 亚洲人成激情在线播放| 国内精品免费视频自在线| 美女被羞羞网站免费下载| 亚洲精品无码精品mV在线观看| 免费A级毛片无码视频| 亚洲熟妇久久精品| 亚洲精品国精品久久99热一| 真人做A免费观看| 全部一级一级毛片免费看| 亚洲日本在线看片| 国产免费看插插插视频| 国产va在线观看免费| 亚洲精品宾馆在线精品酒店| 日韩亚洲欧洲在线com91tv| 成人特黄a级毛片免费视频|