버퍼 방식으로 사용하여 빠르게 텍스트 파일을 읽는 예제 코드입니다. 제가 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 노트북입니다.