2013-03-08 3 views
-1

행과 열을 포함하는 거대한 데이터 파일 (csv 형식)을 읽고 싶습니다. 각 열을 순서대로 읽고 처리하고 싶습니다. 어떤 방법이 속도와 메모리 사용면에서 더 효율적입니까? 자바의 CSVReader 또는 임의 액세스 파일 기능을 사용해야합니까? 도와주세요. 감사합니다.CSVReader 또는 RandomAccessFile 파일을 읽을 때 Java에서보다 효율적인 방법은 무엇입니까?

+2

'CSVReader'와'RandomAccessFile'은 두 가지 다른 것들입니다. 모든 버퍼링 된 리더는 버퍼되지 않은'RandomAccessFile' 읽는 것보다 빠릅니다. –

답변

2

성능과 효율성을 최우선으로 생각하는 경우 memory mapped files and NIO을 사용하고 자체 CSV 파서를 작성하십시오.

하지만 대부분의 경우 시간 낭비 일뿐입니다. 따라서 먼저 CSVReader을 시도해보고이 방법이 효과가 없다고 판단한 경우에만 CSV 파서를 작성하십시오.

BufferedReader은 일반적으로 RandomAccessFile보다 빠릅니다.

+1

+1 - 실적에 시간을 낭비하지 않는 것이 중요합니다. 1) 응용 프로그램이 너무 느리고 2) 파일을 읽는 것이 대부분의 시간을 차지한다는 명백한 증거가있는 경우에만 그럴 가치가 있습니다. –

+0

답변에 감사드립니다! CSVReader를 당분간 사용하겠습니다. 코드 작성을위한 많은 것들이 있습니다. – Kaur