Java에서 CSV 구문 분석
Rupam Yadav
2024년2월15일
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
작가: 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