[16일차] 자바 - InputStream, OutputStream

SOSO·2022년 5월 9일
0

학원

목록 보기
15/59
post-thumbnail

OutputStream

바이트 출력을 수행하는 필요한 메서드를 정의한 추상 클래스이다

FileOutputStream


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

public class FileOutputStreamMain {
	public static void main(String[] args) {
		FileOutputStream fos =null;
		try {
			//생성할 파일을 지정하고 FileOutputStream 객체 생성
		fos = new FileOutputStream("fileout.txt");
		
		//이어 쓰기 		
		//fos = new FileOutputStream("fileout.txt",true);
		
		//파일에 저장할 문자열
		String message ="Hello File! 파일에 내용을 명시합니다.";
		fos.write(message.getBytes());
		}catch(IOException e) {
			e.printStackTrace();
		}finally {
			if(fos!=null)try {fos.close();}catch(IOException e) {}
		}
	}
}

프로그램 실행 결과



BufferedOutputStream


import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class BufferedOutputStreamMain {
	public static void main(String[] args) {
		FileOutputStream fos = null;
		BufferedOutputStream bos = null;

		try {
			// 파일명을 지정하고 FileOutputStream 객체 생성
			fos = new FileOutputStream("buffereOut.txt");
			// 파일 정보를 BufferedOutputStream 생성할때 제공함
			bos = new BufferedOutputStream(fos);

			// 저장할 문자열 지정
			String str = "BufferedOutputStream Test 입니다.";
			// 문자열 -> byte[] 변환
			bos.write(str.getBytes());
			bos.flush();
			// 플러시하지 않으면 버퍼에 담겨있는 데이터를 파일에
			// 저장하지 못함
			// 플러시하면 버퍼에 담겨있는 데이터를 파일에 전송하고
			// 버퍼릴 비움
			
			System.out.println("파일을 생성하고 파일에 내용을 명시했습니다");

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			// 자원정리
			/*
			 * BufferedOutputStream의 close()메서드는 자원정렬하기 전에
			 * buffer를 체크해서 남아있는 데이터가 있으면 파일로 전송하고 버퍼를 비움
			 */
			if(bos!=null)try {bos.close();}catch(IOException e){}
			if(fos!=null)try {bos.close();}catch(IOException e){}
			}
		}
	}

출력 결과

파일을 생성하고 파일에 내용을 명시했습니다



InputStream

바이트 입력을 수행하는 필요한 메서드를 정의한 추상 클래스이다

FileReader


import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class FileReaderMain {
	public static void main(String[] args) {
		FileReader fr = null;
		int readChar;
		try {
			//file.txt의 데이터를 읽기위해서 FileReader 객체 생성
			//2바이트 입력을 하는 문자스트림
			fr = new FileReader("file.txt");
			
			//파일로부터 데이터를 한 문자씩 읽어들여 유니코드로 변환
			while((readChar = fr.read())!=-1) {
				System.out.println((char)readChar);
			}
			
		}catch(FileNotFoundException e) {
			e.printStackTrace();
		}catch(IOException e) {
			e.printStackTrace();
		}finally {
			//자원정리
		}
	}
}



출력 결과

H
e
l
l
o
 
W
o
r
l
d
!
!

BufferedReader


import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class BufferReaderMain03 {
	public static void main(String[] args) {
		FileReader fr =null;
		BufferedReader br =null;
		String msg;
		try {
			//file.txt를 지정해서 fileReader 객체 생성
			
			fr = new FileReader("file.txt");
			br= new BufferedReader(fr);
			while((msg=br.readLine())!=null){
				System.out.println(msg);
			}
			
		}catch(IOException e){
			e.printStackTrace();
			
		}finally {
			//자원정리
			if(br!=null)try {br.close();}catch(IOException e) {}
			if(br!=null)try {fr.close();}catch(IOException e) {}
		}
	}
}



출력 결과

Hello World!! 
profile
한다 열심히

0개의 댓글