본문 바로가기
언어/JAVA

OutputSteam (출력 스트림)

by step 1 2021. 5. 23.
반응형

OutputStream

바이트 단위 출력 스트림 최상위 추상 클래스

많은 추상 메서드가 선언되어 있고 이를 하위 스트림이 상속받아 구현함

 

주요 하위 클래스

스트림 클래스 설명
FileOutputStream 파일에서 바이트 단위로 자료를 씁니다
ByteArrayOutputStream byte 배열 메모리에서 바이트 단위로 자료를 씁니다
FilterOutputStream 기반 스트림에서 자료를 쓸 때 추가 기능을 제공하는 보조 스트림의 상위 클래스

 

주요 메서드

메서드 설명
int write() 한 바이트를 출력
int write(byte b[]) b[] 크기의 자료를 출력
int write(byte b[], int off, int len) b[] 배열에 있는 자료의 off위치부터 len 개수만큼 자료를 출력
void flush() 출력을 위해 잠시 자료가 머무르는 출력 버퍼를 강제로 비워 자료를 출력
void close() 출력 스트림과 연결된 대상 리소스를 닫습니다. 출력 버퍼가 지워집니다.

 

파일에 한 바이트씩 쓰기

FileOutputStreamTest1.java

package ch61;

import java.io.FileOutputStream;

public class FileOutputStreamTest1 {

	public static void main(String[] args) {
		
		try(FileOutputStream fos = new FileOutputStream("output.txt")) {
			
			fos.write(65); // A
			fos.write(66); // B
			fos.write(67); // C
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println(e.getMessage());
		}
		
		System.out.println("end");
	}
}

실행하고 확인하면 output.txt 파일이 생성됨

파일생성및 내용입력 확인

 

byte[] 배열에 A-Z까지 넣고 배열을 한꺼번에 파일에 쓰기

FileOutputStreamTest2.java

package ch61;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class FileOutputStreamTest2 {

	public static void main(String[] args) throws FileNotFoundException {
		
//		true이면 기존 데이터 뒤에 추가되어서 작성되고 false이면 데이터가 변경된다
		FileOutputStream fos = new FileOutputStream("output2.txt", false);
		
		try(fos) {  // java9 부터 지원
			
			byte[] bs = new byte[26];
			
			byte data = 65;
			for (int i = 0; i < bs.length; i++) {
				bs[i] = data++;
			}
			fos.write(bs);
//			fos.write(bs, 2, 5);
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println(e.getMessage());
		}
		
		System.out.println("end");
	}
}

실행후 확인하면 output2.txt 파일 생성됨

 

반응형

'언어 > JAVA' 카테고리의 다른 글

여러가지 보조 스트림 클래스  (0) 2021.05.23
문자단위 입출력 스트림  (0) 2021.05.23
바이트 단위 입출력 스트림  (0) 2021.05.23
표준 입출력 스트림  (0) 2021.05.23
자바의 입출력(I/O 스트림) 종류 설명  (0) 2021.05.23