🎃

プログラミング自主学習 DAY74 OutputStream

2023/08/09に公開

OutputStream

すべて入出力ストリームは、Byteに変換される。
OutPutStreamは、最上位のバイト出力ストリームで、抽象クラスだ。

Fileに内部のデーターを保存したい場合は、FileOutputStream を活用することで、データーを出力することができる。
音楽、映像などはデーターを交換する際に、このストリームを活用する。

OutputStream os = new FileOutputStream("C:/temp/test1.db");

OutputStream os = new FileOutputStream("C:/temp/test1.db", true);
既存のファイルに追加する -> append

OutputStream os = new FileOutputStream("C:/temp/test1.db", false);
既存のファイルにoverwriteする -> 原本損失

1byte 出力

オブジェクト生成時に、パラメーターに絶対経路を入れる必要がある。経路にファイルになければ、自動的に生成される。

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class WriteExample {

public static void main(String[] args) {
   	try {
   		OutputStream os = new FileOutputStream("C:/temp/test1.db");
 	byte a = 10;
	byte b = 20;
	byte c = 30;
		
	os.write(a);
	os.write(b);
	os.write(c);
		
	os.flush();
	os.close();
	}catch (IOException e) {
		e.printStackTrace();
	}
    }
}

3bytesのfileが生成されたことがわかる。

byte[] 出力

一般的には1byteずつよりはbyte[]を一気に出力する場合が多い。

void write(byte[])

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class WriteExample {

	public static void main(String[] args) {
		
	try {
		OutputStream os = new FileOutputStream("C://tmp/test2.db");
		
		byte[] array = {10,20,30,40,50};
		os.write(array,1,3);  //arrayの横に整数を入れればみindexを出力
		
		os.flush();
		os.close();
	  } catch (IOException e) {
		e.printStackTrace();
      }
    }
}

Discussion