1. 개요
간단히 말해서 CSV(쉼표로 구분된 값) 파일에는 쉼표 구분 기호로 구분된 체계적인 정보가 포함되어 있습니다.
이 사용방법(예제)에서는 CSV 파일을 배열로 읽는 다양한 방법을 살펴보겠습니다.
2. java.io 의 BufferedReader
먼저 BufferedReader 에서 readLine() 을 사용하여 레코드를 한 줄씩 읽습니다 .
그런 다음 쉼표 구분 기호에 따라 줄을 토큰으로 나눕니다.
List<List<String>> records = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader("book.csv"))) {
String line;
while ((line = br.readLine()) != null) {
String[] values = line.split(COMMA_DELIMITER);
records.add(Arrays.asList(values));
}
}
더 정교한 CSV(예: 값으로 따옴표 또는 쉼표 포함)는 이 접근 방식으로 의도한 대로 구문 분석되지 않습니다.
3. java.util 의 스캐너
다음으로 java.util.Scanner 를 사용 하여 파일 내용을 실행하고 줄을 하나씩 차례로 검색합니다.
List<List<String>> records = new ArrayList<>();
try (Scanner scanner = new Scanner(new File("book.csv"));) {
while (scanner.hasNextLine()) {
records.add(getRecordFromLine(scanner.nextLine()));
}
}
그런 다음 라인을 구문 분석하고 배열에 저장합니다.
private List<String> getRecordFromLine(String line) {
List<String> values = new ArrayList<String>();
try (Scanner rowScanner = new Scanner(line)) {
rowScanner.useDelimiter(COMMA_DELIMITER);
while (rowScanner.hasNext()) {
values.add(rowScanner.next());
}
}
return values;
}
이전과 마찬가지로 더 정교한 CSV는 이 접근 방식으로 의도한 대로 구문 분석되지 않습니다.
4. 오픈CSV
OpenCSV로 더 복잡한 CSV 파일을 처리할 수 있습니다.
OpenCSV는 CSV 파일 작업을 위한 API를 제공하는 타사 라이브러리입니다.
CSVReader의 readNext () 메서드를 사용 하여 파일의 레코드를 읽습니다.
List<List<String>> records = new ArrayList<List<String>>();
try (CSVReader csvReader = new CSVReader(new FileReader("book.csv"));) {
String[] values = null;
while ((values = csvReader.readNext()) != null) {
records.add(Arrays.asList(values));
}
}
OpenCSV에 대해 더 자세히 알아보고 자세히 알아보려면 OpenCSV 사용방법(예제) 를 확인하세요 .
5. 결론
이 빠른 기사에서는 CSV 파일을 배열로 읽는 다양한 방법을 살펴보았습니다.
항상 그렇듯이 예제의 전체 소스 코드는 GitHub에서 사용할 수 있습니다 .