버퍼 방식으로 사용하여 빠르게 텍스트 파일을 읽는 예제 코드입니다. 제가 Java 아재라서, 새로운 Java의 더욱 효과적인 파일 읽기 API가 분명 있을것 같은데.. 혹 있다면 추천 부탁드리겠습니다.
package tst;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
public class MainEntry {
public static void main(String[] args) {
String filePath = "D:\\__Data__\\DXF\\1_5000\\NGII_DTM_5000_울산_남구_35905\\35905090.dxf";
FileInputStream fs = null;
InputStreamReader isr = null;
BufferedReader br = null;
try {
long startTime = System.currentTimeMillis();
fs = new FileInputStream(filePath);
isr = new InputStreamReader(fs, "euc-kr");
br = new BufferedReader(isr);
String line = null;
while((line = br.readLine()) != null) {
//System.out.println(line);
}
long finishTime = System.currentTimeMillis();
System.out.println("소요시간: " + (finishTime - startTime) + " ms");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(br != null) br.close();
if(isr != null) isr.close();
if(fs != null) fs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
위의 코드로 7.52MB 크기의 파일을 모두 읽는데, 약 0.13초정도 소요됩니다. 사용하고 있는 개발 환경은 i7-6700HQ@2.60GHz의 RAM 16GB 노트북입니다.
