자바스크립트 IO (Input Output) 입출력 관련 TIP - JavaScript IO TIP
① 통상적으로 Stream계의 클래스를 사용함
java.io패키지에서 문자데이터 입출력시에는 Reader/Writer 클래스를 바이트단위 데이터 입출력시에는
InputStream/OutputStream 을 이용합니다.
다만, 아스키캐릭터의 경우에는 1문자가 1바이트이므로 InputStream/OutputStream 클래스를 이용할 수 있습니다.
약 100K 정도의 영문자로 이루어져 있는 텍스트파일을 가지고 예를 들겠습니다.
예) Reader계 클래스을 이용한 파일 입출력 예
FileReader in = new FileReader("test.txt");
int buf;
while ( buf = in.read() != -1)
{
.......
}
in.close();
예) InputStream계 클래스를 이용한 파일 입출력 예
FileInputStream in = new FileInputStream("test.txt");
int buf;
while ( buf = in.read() != -1)
{
.......
}
in.close();
위의 2가지 예를 비교한 performance 비교표는 아래와 같습니다.
사용클래스 |
처리시간(ms) |
FileReader |
18000 |
FileInputStream |
800 |
CPU : Pentium 300MHz/ Memory :128M / OS : Linux/ J2SE:1.3.1
InputStream계 클래스를 이용한 파일 입출력이 월등히 빠른 처리속도를 보임을 알 수 있습니다.
② Buffering을 이용
예) Buffering을 한 Reader계 클래스을 이용한 파일 입출력 예
FileReader in = new FileReader("test.txt");
BufferedReader bin = new BufferedReader(in);
int buf;
while ( buf = bin.read() != -1)
{
.......
}
bin.close();
예) Buffering을 한 InputStream계 클래스를 이용한 파일 입출력 예
FileInputStream in = new FileInputStream("test.txt");
BufferedInputStream bin = new BufferedInputStream(in);
int buf;
while ( buf = bin.read() != -1)
{
.......
}
bin.close();
위의 2가지 예를 비교한 performance 비교표는 아래와 같습니다.
사용클래스 |
처리시간(ms) |
BufferedReader |
150 |
BufferedInutStream |
80 |
CPU : Pentium 300MHz/ Memory :128M / OS : Linux/ J2SE:1.3.1
글에 남긴 여러분의 의견은 개 입니다.