Java バイナリファイルの読み書き(FileInputStream)

Javaのバイナリファイルファイルの読み込みと書き込みのサンプルです。(確認環境:Java 8)
FileInputStreamとFileOutputStreamを使用します。

目次

バイナリファイル バイナリファイルファイルの読み込みと書き込み
  使用しているコンストラクタ

バイナリファイルファイルの読み込みと書き込み

pngファイルを読み込み、新規ファイルとして別ファイルに出力するサンプルです。

package test1;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
 
public class Test1 {
    public static void main(String[] args) {
        
        String dir = "D:\\Test1";
        String file1 = "\\test1.png";
        String file2 = "\\test2.png";
        
        try(
        	FileInputStream fis = new FileInputStream(dir + file1);
        	BufferedInputStream reader = new BufferedInputStream(fis);
        		
            FileOutputStream fos = new FileOutputStream(dir + file2);
            BufferedOutputStream writer = new BufferedOutputStream(fos);
        ){
            int data;
            while ((data = reader.read()) != -1) {
                writer.write(data);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

16~20行目は、try-with-resources構文です。リソースを自動でクローズします。
16,19行目のFileInputStreamクラスとFileOutputStreamクラスは、バイトで読み書きします。
17,20行目のBufferedInputStreamクラスとBufferedOutputStreamクラスは、バッファ処理を行います。
23行目のreadメソッドの戻り値は、intを返します。バイトデータ(0~255)です。ファイルの終わりに達した場合、-1を返します。

 

使用しているコンストラクタ

FileInputStreamクラス

public FileInputStream(String name) throws FileNotFoundException
public FileInputStream(File file) throws FileNotFoundException

FileOutputStreamクラス

public FileOutputStream(String name) throws FileNotFoundException
public FileOutputStream(File file) throws FileNotFoundException

BufferedInputStreamクラス

public BufferedInputStream(InputStream in)

BufferedOutputStreamクラス

public BufferedOutputStream(OutputStream out)

関連の記事

Java バッファを利用したファイルの読み込みと書き込み(BufferedReaderとBufferedWriter)
Java 文字コード+ファイルの読み書き(InputStreamReader)

△上に戻る