入力ファイル→出力ファイル(Binary)

Binary ファイルの入力/出力を行います。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. メモ帳などでタイプして BinaryIO.java の名前で保存して下さい。
    //★ 入力ファイル→出力ファイル(Binary)    前田 稔
    import java.io.*;
    
    public class BinaryIO
    {
        public static void main(String argv[])
        {   try
            {   InputStream in = new FileInputStream("c:\\data\\test\\ayu.jpg");
                BufferedInputStream bin = new BufferedInputStream(in);
                OutputStream out = new FileOutputStream("c:\\tmp\\ayu.jpg");
                BufferedOutputStream bout = new BufferedOutputStream(out);
                byte buf[] = new byte[1024];
                int c;
                while((c = bin.read(buf, 0, buf.length)) != -1)
                {   bout.write(buf, 0, c);  }
                bin.close();
                bout.close();
            }
            catch(Exception e) {}
        }
    }
    
  2. "c:\data\test\ayu.jpg" を入力して "c:\tmp\ayu.jpg" に出力します。
    事前にフォルダーとファイルを準備して下さい。
    入力ファイルは何でもかまいません。
    別のファイルを使用するときは、プログラムを修正して下さい。

プログラムの説明

  1. ファイルに格納するデータの形式には TEXT DATA と BINARY DATA があります。
    TEXT DATA はメモ帳や Text Editor を使って簡単に読んだり書いたりすることが出来ます。
    BINARY DATA はシステム(作成するプログラム)に依存していて、データを見ただけでは何が書かれているか解らないのが普通です (^_^;) 。
    画像ファイルや音声ファイルやムービーファイルは BINARY 形式で格納されています。
    今回は "c:\data\test\ayu.jpg" を入力して "c:\tmp\ayu.jpg" に出力します。
  2. new FileInputStream() で入力 File を生成します。
    new BufferedInputStream() で BufferedInputStream を生成します。
    new FileOutputStream() で出力 File を生成します。
    new BufferedOutputStream() で BufferedOutputStream を生成します。
        public static void main(String argv[])
        {   try
            {   InputStream in = new FileInputStream("c:\\data\\test\\ayu.jpg");
                BufferedInputStream bin = new BufferedInputStream(in);
                OutputStream out = new FileOutputStream("c:\\tmp\\ayu.jpg");
                BufferedOutputStream bout = new BufferedOutputStream(out);
        
  3. buf[] は入出力バッファです。
    c は実際に入力したバイト数を格納する領域です。
    bin.read(buf, 0, buf.length) で buf[] に一度に「buf.lengthバイト」ずつ入力します。
    bout.write(buf, 0, c) で入力したデータを出力します。
    入力データが無くなると c には -1 が格納されます。
            byte buf[] = new byte[1024];
            int c;
            while((c = bin.read(buf, 0, buf.length)) != -1)
            {   bout.write(buf, 0, c);  }
            bin.close();
            bout.close();
        }
        

超初心者のプログラム入門(Java2)