텍스트 파일을 생성하고 파일에 텍스트 쓰기 세번째 글입니다.
앞서서 설명한 내용과 이번에 설명할 내용의 가장 큰 차이점은, 앞에서 설명한 방식은 Writer를 활용한 쓰기를 말한 것이며 이번에는 OutputStream을 활용한다는 것입니다. FileOutputStream은 OutputStream을 상속한 클래스로서, 파일로 바이트 단위의 출력을 내보내는 클래스 입니다.
파일에 내용을 쓸 때 FileWriter 및 BufferedWriter를 쓰는 경우와 비교를 했을 때 차이점은, 출력하고자 하는 대상을 먼저 바이트 배열로 바꿔줘야 한다는 것입니다. 왜냐면 앞서 언급된 FileOutputStream의 상위 클래스인 OutputStream은 바이트 단위의 출력을 다루기 때문입니다. 이 과정을 통해 출력 대상 데이터가 일련의 이진 데이터 (binary data)로 변환됩니다.
그리고 flush() 메소드까지 호출한 후에 close() 메소드를 통해 FileOutputStream의 인스턴스를 닫아주어야 한다는 점도 다른점입니다.
예제 코드는 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import java.io.File; import java.io.FileOutputStream; import java.io.IOException; public class WriteToFile { public static void main(String args[]) { String message = "This is a sample message.\n"; File file = new File("test1.txt"); FileOutputStream fos = null; try { fos = new FileOutputStream(file); // FileOutputStream 클래스가 파일에 바이트를 내보내는 역할을 하는 클래스이므로 // 내보낼 내용을 바이트로 변환을 하는 작업이 필요합니다. byte[] content = message.getBytes(); fos.write(content); fos.flush(); fos.close(); System.out.println("DONE"); } catch(IOException e) { e.printStackTrace(); } finally { try { if(fos != null) fos.close(); } catch(IOException e) { e.printStackTrace(); } } } } | cs |
반응형
'Java > IO' 카테고리의 다른 글
[자바][IO] 텍스트 파일 내용 읽어들여서 콘솔에 출력시키기 (0) | 2017.04.21 |
---|---|
[자바][IO] 텍스트 파일 생성하고 파일에 텍스트 쓰기 (2) - FileWriter 및 BufferedWriter활용 (0) | 2017.04.20 |
[자바][IO] 텍스트 파일 생성하고 파일에 텍스트 쓰기 (1) - FileWriter 활용 (0) | 2017.04.20 |