텍스트 기반의 파일을 다룰 경우, FileWriter 및 BufferedWriter를 활용한다.
FileWriter 만 사용해도 되지만 그럴 경우, buffer를 사용하지 않으므로 비효율적 따라서 BufferedWriter를 사용한다.
종료시 close는 반드시 호출할 수 있도록 하며, try ~ finally 구문에 넣어주는 것이 좋다.
왜냐하면 예외 발생시, close()를 호출하지 않고 종료될 수 있기 때문.
자세한 내용은 예제를 통해 참조
public class StreamTest {
public StreamTest() {
super();
this.test();
}
private void test() {
String fullPath = "C:"+File.separator+"Users"+File.separator+"Lee"+File.separator+"test"+File.separator+"numbers.txt";
writeFile(fullPath,10);
}
private void writeFile(String fullPath, int i) {
FileWriter fileWriter=null;
BufferedWriter bufferedWriter=null;
try {
//fileWriter= new FileWriter(fullPath); //write mode.
fileWriter= new FileWriter(fullPath, true);//append mode
bufferedWriter = new BufferedWriter(fileWriter);
for ( int loop=0; loop < i ; loop ++) {
bufferedWriter.write(Integer.toString(loop));
bufferedWriter.newLine();
}
System.out.println("Write done!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if( bufferedWriter!=null) {
try {
bufferedWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (fileWriter != null) {
try {
fileWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
출처 : 자바의 신
'java' 카테고리의 다른 글
| Serializable interface, transient 예약어, FileInputStream, FileOutputStream, ObjectInputStream, ObjectOutputStream 예제 (0) | 2019.09.22 |
|---|---|
| FileReader 및 BufferedReader + (Scanner) (0) | 2019.09.22 |
| FileFilter , FileNameFilter interface (0) | 2019.09.21 |
| Thread interrupt 및 getState 예제 (0) | 2019.09.21 |
| synchronized 정리 (0) | 2019.09.21 |