package kr.or.didt.basic;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class BufferedIOTest01 {
public static void main(String[] args) {
//입출력의 성능 향상을 위해서 Bufferd스트림을 사용한다.
try {
FileOutputStream fout = new FileOutputStream("d:/d_other/bufferTest.txt");
//버퍼의 크기가 5일 버퍼스트림 객체 생성
//버퍼의 크기를 정하지 않으면 8KB(8192bytes)의 크기로 설정된다.
BufferedOutputStream bout = new BufferedOutputStream(fout, 5);
for (char ch = '1'; ch <='9'; ch++) {
bout.write(ch);
}
//출력된 데이터를 읽어야할 작업을 해야할때는?
//출력 작업이 마무리되면 flush명령어를 사용해서 작업하는것
bout.flush(); // 작업을 종료하기 전에 버퍼에 남아있는
// 데이터를 모두 출력 시킨다.
System.out.println("출력 작업 끝...");
bout.close(); //스트림 닫기 ==> 보조 스트림을 닫으면
// 보조 스트림이 사용하는 기반이 되는 스트림도 같이 닫힌다.
} catch (IOException e) {
// TODO: handle exception
}
}
}
package kr.or.didt.basic;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class BufferedIOTest02 {
public static void main(String[] args) {
// 문자 기반의 Buffered스트림 사용 예제
try {
//이클립스에서의 자바 프로그램이 실행되는 현재 위치는
//해당 프로젝트 폴더가 현재 위치가 된다.
FileReader fr = new FileReader("./src/kr/or/ddit/basic/FileTest01.java");
BufferedReader br = new BufferedReader(fr);
String temp ="";
for (int i = 1; (temp=br.readLine()) != null; i++) {
//중간은 다른 조건식을 쓸수도 있음!! 몇번줄의 데이터를 표시하기 위해서 줄번호 역할을 하는것
System.out.printf("%4d : %s\n", i, temp); //%d는 숫자를 출력하라는 소리
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}