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)+ " 秒。" ); } }