[java] OpenCSV를 사용하여 CSV 파일의 빈 행을 제거하는 방법은?
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import com.opencsv.CSVReader;
import com.opencsv.CSVWriter;
public class RemoveEmptyRows {
public static void main(String[] args) {
String inputFilePath = "input.csv";
String outputFilePath = "output.csv";
try (CSVReader reader = new CSVReader(new FileReader(inputFilePath));
CSVWriter writer = new CSVWriter(new FileWriter(outputFilePath))) {
List<String[]> lines = reader.readAll();
// Remove empty rows
lines.removeIf(line -> line.length == 0 || (line.length == 1 && line[0].isEmpty()));
// Write the updated lines to the output file
writer.writeAll(lines);
System.out.println("Empty rows removed successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
위의 예시 코드에서 우리는 input.csv
파일에서 데이터를 읽어와 빈 행을 제거한 후 output.csv
파일로 쓰고 있습니다. removeIf
메서드를 사용하여 빈 행을 제거하는데, line
배열의 길이가 0이거나(빈 행), 길이가 1이면서 비어있는 문자열인 경우 빈 행으로 간주합니다.
빈 행이 제거된 후의 CSV 파일은 output.csv
파일에 저장됩니다.