본문 바로가기



프로그래밍/JAVA

[JAVA] FileWriter 와 OutputStreamWriter차이점

FileWriter에 UTF8형식을 사용할려고 했더니 OutputStreamWriter을 사용하여, 변형하는 방법만 있었는데, 실제로 도입해보니 차이점이 있었다.

FileWriter 


FileWriter를 사용하여 파일을 기록하면 3번 도는 for문을 사용했을시에 1번,2번,3번 내용이 고스란히 디스크의 파일에 차곡차곡 Stack으로 쌓여 있지만, BufferedWriter와 OutputStreamWriter, FileOutputStream을 조합한 경우에는 최종값만 파일에 저장되게 된다. 

BufferedWriter output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename), "UTF8"));
output.write(text4);
output.close();

 

Buffered Stream계열은 프로그램의 데이터를 하드웨어내의 고속 인터페이스 CPU -> Memory(RAM)으로 보낸다음 그것을 한번에 저장장치로 기록하는 방식이라서 매번 기록에 접근하지 않기 때문에 이런 결과가 나오는것 같다. 
실제로 사용할려면 HashMap과 같은 컬렉션 프레임 워크를 사용해서 데이터를 제어해야한다. 이부분은 아직 1회차 학습밖에 하지않아서 더 공부해 보아야할것 같다.