Javaサンプルコード辞典

BufferedInputStream,BufferedOutputStream - ファイルをコピーする

「BufferedInputStream」と「BufferedOutputStream」を使用してファイルをコピーするサンプルコードです。

ファイルの入出力には「FileInputStream」と「FileOutputStream」を利用します。「FileInputStream」と「FileOutputStream」はそれぞれread(),wtite()が呼び出されるたびにファイルアクセスが発生し、処理効率が悪くなりますので、通常はバッファ機能を持つ「BufferedInputStream」と「BufferedOutputStream」でデコレートして使用します。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

//コマンドラインの第1引数で指定されたファイルを第2引数で指定されたファイルにコピーする
//第1引数(例:c:\\dev\\test.txt) 第2引数(例:c:\\dev\\test_copy.txt)
public class FileCopy {

      public static void main(String[] args) {
            
            System.out.println("--処理開始--");
            
            //コマンドライン引数が入力されているかチェックを行う
            if(args.length < 2)
            {
                  System.out.println("コマンドライン引数を指定してください");
                  return;
            }
            
            //finallyブロックからリソースを開放できるようにtryブロックの外で変数を宣言
            BufferedInputStream in = null;      //ファイル入力用ストリーム
            BufferedOutputStream out = null;      //ファイル出力用ストリーム
            
            try
            {
                  //効率よく処理を行えるように「BufferedInputStream」、「BufferedOutputStream」でデコレートする。
                  //それぞれのコンストラクタの引数には入力、出力ファイルのパスを指定する。
                  in = new BufferedInputStream(new FileInputStream(args[0]));
                  out = new BufferedOutputStream(new FileOutputStream(args[1]));
                  
                  int bytedata = 0;
                  //1バイトずつ読み込んで出力する
                  //-1が返却された時点でEOFと判断して、ループを抜ける
                  while( (bytedata = in.read()) != -1)
                  {
                        out.write(bytedata);
                  }
            }
            //入力ファイルが存在しなかった場合
            catch(FileNotFoundException e)
            {
                  System.out.println(e);
            }
            //入出力エラーが発生した場合
            catch(IOException e)
            {
                  System.out.println(e);
            }
            //その他例外が発生した場合
            catch(Exception e)
            {
                  System.out.println(e);
            }
            //例外発生時にも確実にリソースが開放されるように
            //close()の呼び出しはfinallyブロックで行う。
            finally
            {
                  if(in != null)
                  {
                        try
                        {
                              in.close();
                        }catch(Exception e){ System.out.println(e); }
                  }
                  
                  if(out != null)
                  {
                        try
                        {
                              out.close();
                        }catch(Exception e){ System.out.println(e); }
                  }
            }
            
            System.out.println("--処理終了--");

      }
}

(2007年11月2日)  

 ちょっと一休み. Javaキーワード並び替えゲーム

画面に表示される文字列を並び替えるとJavaに関連するキーワードになります。ヒントをたよりに並び替えを行ってエンターを押してください。 ユーザ登録をしてログインするとランキングに参加できます。
Flex Tips

DWRでリッチなWebページを作る!

Java Tips  java.io 編

Java Tips  java.lang 編