入出力ストリームのアプリケーション

1つのファイルコピー

FileInputStreamのとのFileOutputStreamを達成するためにファイルをコピーし、この方法は、フォルダをコピーしません。

パッケージpers.zhh.copy。

輸入java.io.FileInputStream; 
輸入java.io.FileOutputStreamは、
インポートにjava.io.IOException; 

パブリック クラスCopyDemo {
     公共 静的 ボイドメイン(文字列[] argsが)にIOException {スロー
        のFileInputStream Fiが = 新規のFileInputStream(" M:\\数据库の.zip " )。
        FileOutputStream FO = 新しいのFileOutputStream(" M:\\数据库1.zip " );
        int型 NUM = 0 ;
        長いのstartTime = にSystem.currentTimeMillis();
        一方 - ((NUM = fi.read())!= 1 ){ 
            fo.write(NUM); 

        } 
        ()fo.close; 
        fi.close(); 
        ロング endTimeは= にSystem.currentTimeMillis(); 
        システム。OUT。 println(" でこの手順を実行する" +(endTimeは-のstartTime)+ " 秒。" ); 
    } 
}

(2)バッファの配列:

パッケージpers.zzz.copy。

輸入java.io.FileInputStream; 
輸入java.io.FileOutputStreamは、
インポートにjava.io.IOException; 

パブリック クラスCopyDemo1 {
     公共 静的 ボイドメイン(文字列[] argsが)にIOException {スロー
        のFileInputStream Fiが = 新規のFileInputStream(" M:\\网页设计の.zip " )。
        FileOutputStream FO = 新しいのFileOutputStream(" M:\\网页设计3.zip " );
        バイト [] BUF = 新しい バイト [ 1024 ];
        int型のlen =0 ;
         ロングたstartTime = にSystem.currentTimeMillis();
         ながら(!(LEN = fi.read(BUF))= - 1 ){ 
            fo.write(BUF、0、LEN); // 指定されたデータ配列の長さこれは、出力ストリームに書き込まれます。
        } 
        Fo.close(); 
        fi.close(); 
        ロング endTimeは= にSystem.currentTimeMillis(); 
        システム。OUT .println(" でこの手順を実行する" +(endTimeは-のstartTime)+ " 秒。" ); 
    } 

}

第1の方法では、1のみ1バイトのデータを読み取ることができ、コピーデータは、ほんの数Mは、非常に低い効率を7S時間がかかりました。バッファ・アレイを介して第2ながらのみ4S時間を費やし近い1Gファイルをコピーし、大幅に効率を向上させます。

2、IOストリームの例外処理

パッケージpers.zzz.copy。

輸入java.io.FileInputStream; 
輸入java.io.FileOutputStreamは、
インポートにjava.io.IOException; 

パブリック クラスCopyDemo1 {
     公共 静的 ボイドメイン(文字列[]引数){ 
        たFileOutputStream FO = NULL ; 
        FileInputStreamのFiの = nullを長いのstartTime = にSystem.currentTimeMillis();
        試す{ 
            Fiあり = 新規のFileInputStream(" M:\\网页设1计の.zip " ); 
            FO = 新しいですFileOutputStream(" M:\\ Webデザイン11.zip " ); 

            バイト BUF [] = 新しい新しい バイト [ 1024 ];
             int型のlen = 0 ; 

            しばらく - ((レン= fi.read(BUF))!= 1。{)
                FO .WRITE(BUF、0、LEN); // 出力ストリームに配列で指定された書き込みデータの長さ。
            } 
        } キャッチ(IOExceptionをE){ 
            システム。OUT .println(e.toString()); 
        } 最後に{
             IF(!FO = ヌル){
                試す{ 
                    fo.closeを(); 
                } キャッチ(IOExceptionを電子){ 
                    システム。アウト.println(e.toString());
                    スロー 新しいのRuntimeExceptionを(); 
                } 
            } 
            もし(!Fiの= NULL ){
                 試みる{ 
                    )(fi.closeします。
                } キャッチ(IOExceptionを電子){ 
                    システム。アウト.println(e.toString());
                    スロー 新しいのRuntimeExceptionを(); 

                }

            } 

        } 
        ロング endTimeは= にSystem.currentTimeMillis(); 

        システム。OUTの .println(" でこの手順を実行する" +(endTimeは-のstartTime)+ " 秒。" ); 
    } 
}

 

おすすめ

転載: www.cnblogs.com/zhai1997/p/11366386.html