Java에서 CSV 구문 분석
Rupam Yadav
2024년2월15일
Java
Java CSV

Java에서 CSV 구문 분석 주제를 다룰 것입니다. Java에서 아래 샘플 CSV의 Java CSV 구문 분석을 수행하는 다양한 방법을 살펴 보겠습니다.
Java에서Scanner
를 사용하여 CSV 구문 분석
CSV 파일을 구문 분석하는 첫 번째이자 가장 고전적인 방법은 Java의Scanner
클래스를 사용하는 것입니다. 예제에서는File
을 사용하여 파일을 가져온 다음Scanner
로 읽습니다.
이 예에서 주목해야 할 가장 중요한 점은 CSV에서 사용되는 구분 기호를 알아야한다는 것입니다. 원래 CSV의 쉼표를 구분 기호로 사용합니다. 그래서 코드에서 구분자로,
를 지정할 수 있습니다.
import java.io.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws FileNotFoundException {
File getCSVFiles = new File("/test/example.csv");
Scanner sc = new Scanner(getCSVFiles);
sc.useDelimiter(",");
while (sc.hasNext()) {
System.out.print(sc.next() + " | ");
}
sc.close();
}
}
출력:
Id | UserName | Age | Job
1 | John Doe | 24 | Developer
2 | Alex Johnson | 43 | Project Manager
3 | Mike Stuart | 26 | Designer
4 | Tom Sean | 31 | CEO |
Java에서String.split()
을 사용하여 CSV 구문 분석
다음 예제에서는String
클래스와 함께 작동하는split()
메서드를 사용합니다. BufferedReader
를 사용하여 CSV 파일을 읽고null
에 도달 할 때까지 모든 행을 반복하여 읽을 수 있습니다.
import java.io.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws FileNotFoundException {
String line = "";
final String delimiter = ",";
try {
String filePath = "/test/example.csv";
FileReader fileReader = new FileReader(filePath);
BufferedReader reader = new BufferedReader(fileReader);
while ((line = reader.readLine()) != null) // loops through every line until null found
{
String[] token = line.split(delimiter); // separate every token by comma
System.out.println(token[0] + " | " + token[1] + " | " + token[2] + " | " + token[3]);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
출력:
Id | UserName | Age | Job
1 | John Doe | 24 | Developer
2 | Alex Johnson | 43 | Project Manager
3 | Mike Stuart | 26 | Designer
4 | Tom Sean | 31 | CEO
Java에서OpenCSV
를 사용하여 CSV 구문 분석
여러 라이브러리가 Java에서 CSV를 구문 분석하는 데 도움이 될 수 있습니다. 그중 하나가 OpenCSV
입니다. 아래 예에서CSVReader()
는 CSV 파일과 함께fileReader
를 가져 와서 문자열 배열을 반환합니다.
import com.opencsv.CSVReader;
import java.io.*;
import java.util.List;
import java.util.Scanner;
import java.util.Vector;
public class Main {
public static void main(String[] args) throws Exception {
try {
String filePath = "/test/example.csv";
FileReader fileReader = new FileReader(filePath);
CSVReader openCSVReader = new CSVReader(fileReader);
String[] record;
while ((record = openCSVReader.readNext()) != null) {
for (String token : record) {
System.out.print(token + "\t");
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
출력:
Id UserName Age Job
1 John Doe 24 Developer
2 Alex Johnson 43 Project Manager
3 Mike Stuart 26 Designer
4 Tom Sean 31 CEO
튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
작가: Rupam Yadav
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn