FilreInputStreamクラスのreadメソッドを使用します。
readメソッドはファイルの最後に達すると-1を返します。
int read()
入力ストリームから 1 バイトを読み込みます。
int read(byte[] b)
入力ストリームから最大 b.length バイトをバイト配列に読み込みます。
int read(byte[] b, int off, int len)
入力ストリームからバイト配列へ最大 len バイトのデータを読み込みます。
1バイトづつバイナリファイルへ書き込むにはFileOutputStreamクラスのwriteメソッド使用します。
void write(int b)
指定されたバイトデータをファイル出力ストリームに書き込みます。
void write(byte[] b)
指定されたバイト配列の b.length バイトをこのファイル出力ストリームに書き込みます。
void write(byte[] b, int off, int len)
指定されたバイト配列からのオフセット位置 off から始まる len バイトをこのファイル出力ストリームに書き込みます。
参考:テキストファイルの場合とほとんど同じです。
テキストファイルから1文字づつ文字を読み込む
テキストファイルに文字を書き込む
下記のコードは「D:/Sample1.jpg」より1バイト読み込み、「D:/CopySample1.jpg」に1バイト書き込みます。
package FileAccess; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class BinaryFileSample01{ public static void main(String args[]){ new BinaryFileSample01(); } public BinaryFileSample01(){ FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream("D:/Sample1.jpg"); fos = new FileOutputStream("D:/CopySample1.jpg"); int data; while ((data = fis.read()) != -1){ fos.write(data); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ try { if (fis != null){ fis.close(); } } catch (IOException e) { e.printStackTrace(); } try { if (fos != null){ fos.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
0 件のコメント:
コメントを投稿