MisoBoy Blog...

FileOutputStream 클래스를 이용해서 바이트 데이터를 파일에 쓰는 프로그램 본문

Java

FileOutputStream 클래스를 이용해서 바이트 데이터를 파일에 쓰는 프로그램

misoboy 2011. 7. 12. 19:25

이진 데이터를 파일에 쓰는 클래스 중 FileOutputStream 클래스가 있습니다.
이전에 했던 FileWriter 클래스는 char 타입을 출력할 때 사용을 했었구요~
이번엔 char 타입이 아닌 이진 데이터를 출력하는 클래스 FileOutputStream 을 사용해보도록 하겠습니다. 

FileOutputStream 클래스의 사용 방법은 앞에서 했던 FileWriter 클래스와 아주 비슷합니다.
생성자를 이용해서 파일을 여는 방법도 그렇고, write 메소드를 이용해서 데이터를 출력하는 방법도 그렇고, close 메소드를 호출해서 파일을 닫는 방법도 동일합니다.

자~ 그러면 Document API 가서 FileOutputStream 에 대해 볼까요~? 고고싱~ 



Java.io -> FileOutputStream 을 확인 할 수 있습니다.



FileOutputStream 클래스의 배열을 사용하는 write 메소드는 IOException 을 발생시키는군요 !!
그럼 Checked Exception 이겠군요~ try ~catch 를 해주거나 throws 해줘야 겠지요? 



항상 끝날때마다 닫아줘야 하는 close 메소드도 IOException 를 발생시키네요!!
하지만 무슨일이 있어도 close 해야 하기 때문에 IOException 보다 상위 클래스인 Exception 으로 잡아 줍니다.
이것도 Checked Exception 이군요. 그럼 역시나 try ~ catch 를 해주거나 throws 해줍시다~!! 


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

public class OutputStreamExample {  
	public static void main(String [] args){        
		FileOutputStream out = null;        
		try{            
			out = new FileOutputStream("파일명.dat");      
			byte [] arr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
					10, 11, 12, 13, 14, 15, 16, 17, 18, 19 };       
			for(int cnt = 0; cnt < arr.length; cnt++)            
				out.write(arr[cnt]);        
		}catch (IOException e) {        
			System.out.println("파일을 출력할 수 없습니다.");
		}   
		finally{        
			try{            
				out.close();        
			}           
			catch (Exception e){        
			}   
		}   
	}
}

6번라인 -> 생성자로 활용 합니다.

8번라인 -> FileOutputStream 선언해주며 매개변수 에 파일명을 작성 합니다.

9번라인 -> 이진화로 출력하기 위한 Byte [] arr 을 만들어 줍니다.

11번라인 -> Byte [] arr 의 모든 정보를 파일로 보내기 위해 반복문을 사용 합니다.

12번라인 -> Document API 에 봤던 write 메소드 입니다. IOException 을 발생한다고 했었죠? 
                 그래서 7번라인부터 try ~ catch 를 활용합니다.

13번라인 -> 발생하는 IOException 을 Catch 해줍니다.

16번라인 -> finally 는 알고 계시듯이 예외처리가 발생하든 안하든 실행되는 아이 입니다.

18번라인 -> Doucument API 에서 보셨듯이 close 메소드도 IOException 를 발생하며 저는 IOException 의 부모인                          Exception 으로 잡아주었습니다. 




프로그램을 실행하시면 지정하신 파일 명으로 dat 파일이 생성 됩니다.
생성된 dat 파일은 위 그림에서 볼 수 있는 것처럼 프로그램에서 출력한 바이트 수와 일치하는 20이라는 크기를 같습니다.
하지만 이 파일의 내용은 문자 데이터가 아니기 때문에 텍스트 에디터로 내용을 확인할 수 없습니다. 

이상 FileOutputStream 클래스를 이용하여 바이트 데이터를 파일로 출력하는 프로그램을 작성해 보았습니다. 



기타 문의 사항은 Facebook , blog comment, e-mail 로 보내주시면 되겠습니다.
 

감사합니다.