14-1. I.O(Writer/Reader)
# 문자스트림 (2Byte)
1. 출력(writer)
public void fileSave() {
FileWriter fw = null;
try {
fw = new FileWriter("b_char.txt");
fw.write("룰루랄라");
char[] arr = {'a', 'b', 'c', 'd'};
fw.write(arr);
} catch(IOException e) {
e.printStackTrace();
} finally {
fry {
if(fw != null) fw.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
FileWriter() : 파일과 연결된 통로를 만든다.
write() 를 이용하여 데이터를 출력할 수 있다.
Close() 로 자원반납을 해준다.
2. 입력(reader)
public void fileRead() {
FileReader fr = null;
try {
fr = new FileReader("b_char.txt");
int value = 0;
while((value = fr.read()) != -1) {
System.out.print((char)value);
}
} catch(IOException e) {
e.printStacktrace();
} finally {
try {
if(fr != null) fr.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
FileReader() : 파일과 연결된 통로를 만든다.
read() 를 이용하여 데이터를 입력할 수 있다.
Close()로 자원반납까지!
14-2. Buffered
기반 스트림 : 외부매체와 직접적으로 연결되는 통로
보조 스트림 : 기반스트림만으로 부족한 성능을 향상시켜주는 용도로 만들어진 스트림
둘은 같은 계열의 스트림을 사용한다.
1. 출력(BufferedWriter) : 퍼버공간을 제공해서 한꺼번에 출력을 진행하는 스트림
public void fileSaver() {
FileWriter fw = null;
BufferedWriter bw = null;
try {
fw = new FileWriter("c_buffer.txt");
bw = new BufferedWriter(fw);
bw.write("안녕하세요!");
bw.write("\n반갑습니다!");
bw.newLine();
} catch(IOException e) {
e.printStackTrace();
} finally {
try {
bw.close();
fw.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
FileWriter() : 파일과 연결된 통로를 만든다. + BufferedWriter() : 보조스트림 객체를 생성한다.
write() 를 이용하여 데이터를 출력할 수 있다.
Close() 로 자원반납을 해준다. 반납시에는 생성된 자원의 역순으로 반납한다! (보조스트림 반납 후 기반스트림 반납)
2. 입력(BufferedReader) : FileReader를 기반으로 BufferedReader를 추가해서 사용
public void fileRead() {
FileReader fr = null;
BufferedReader br = null;
try(BufferedReader bfr = new BufferedReader(new FileReader("c_buffer.txt"))) {
String str = "";
while((str = bfr.readLine()) != null) {
System.out.println(str);
}
} catch(IOException e) {
e.printStackTrace();
}
}
FileReader() : 파일과 연결된 통로를 만든다. + BufferedReader() : 보조스트림 객체를 생성한다.
read() 를 이용하여 데이터를 출력할 수 있다.
Close() 로 자원반납을 해준다.
'JAVA > JAVA수업' 카테고리의 다른 글
#16. Test2 / 과제 (0) | 2023.07.24 |
---|---|
#15. Set (0) | 2023.07.21 |
#13. API, I.O(Input/Output) (0) | 2023.07.19 |
#12. 추상클래스, 인터페이스, 예외처리 (0) | 2023.07.18 |
#11. 상속, 다형성 (0) | 2023.07.17 |