고급 JAVA
JAVA - 입출력 -성능향상을 위한 보조스트림 예제
햄찌개
2020. 9. 29. 10:25
public class T11_BufferedIOTest {
public static void main(String[] args) {
//입출력의 성능 향상을 위해서 버퍼를 이용하는 보조스트림
FileOutputStream fos = null;
BufferedOutputStream bos = null;
try {
fos = new FileOutputStream("d:/D_Other/bufferTest.txt");
//버퍼의 크기를 지정하지 않으면 기본적으로 버퍼와 크기가 8192(8kb)로 설정된다
//버퍼의 크기가 5인 스트림 객체생성
bos = new BufferedOutputStream(fos,5);//5개가 차면 넘겨주기 떄문에 9byte는 2번 IO작업 하면된다.
for (int i = '1'; i <= '9'; i++) {//숫자 자체를 문자로 지정하기 위해 ''사용
bos.write(i);
}
//9번 반복하고 버퍼가 5이면 5개 채워서 한번 IO하고 두번째는 4개만 차니깐 IO를 안해서 flush()로 마지막에 IO
bos.flush();// 작업을 종료하기 전에 버퍼에 남아있는 데이터를 모두 출력시켜야한다.
// (close 시 자동 호출)
bos.close();
System.out.println("작업 끝 ....");
} catch (IOException e) {
e.printStackTrace();
}
}
}
(문자기반의 Buffered스트림 사용예제)
public class T12_BufferedIOTest {
public static void main(String[] args) {
try {
// 이클립스에서 만든 자바프로그램이 실행되는 기본위치는 해당'프로젝트폴더'가 기본 위치가 된다.
FileReader fr = new FileReader("src/kr/or/ddit/basic/T11_BufferedIOTest.java");
/*//버퍼없이 할떄
int c;
while ((c = fr.read()) != -1) {
System.out.print((char) c);
}
fr.close();*/
//한줄씩 읽을수 있도록 해주는 readLine을 이용하기 위해 BufferedReader 사용
BufferedReader br = new BufferedReader(fr);
String temp ="";
for (int i = 1; (temp =br.readLine())!=null; i++) {//readLine() 한줄씩 읽어옴 다읽으면 null
System.out.printf("%4d : %s\n",i,temp);
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}