Java:
การทำงานกับ CSV
วิธีการ:
การอ่านไฟล์ CSV โดยใช้ไลบรารีมาตรฐานของ Java
Java ไม่มีการสนับสนุนเรื่อง CSV ในไลบรารีมาตรฐานโดยตรง แต่คุณสามารถอ่านไฟล์ CSV ได้ง่ายๆ โดยใช้คลาสจาก java.io
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadCSVExample {
public static void main(String[] args) {
String line;
String csvFile = "data.csv"; // ระบุที่ตั้งของไฟล์ CSV
try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
while ((line = br.readLine()) != null) {
String[] values = line.split(","); // สมมติว่าจุลภาคคือตัวคั่น
// ดำเนินการกับข้อมูล
for (String value : values) {
System.out.print(value + " ");
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
การเขียนข้อมูลลงไฟล์ CSV โดยใช้ไลบรารีมาตรฐานของ Java
เพื่อเขียนข้อมูลลงไฟล์ CSV คุณสามารถใช้คลาสจาก java.io
เช่น FileWriter
และ BufferedWriter
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriteCSVExample {
public static void main(String[] args) {
String[] data = {"John", "Doe", "30", "New York"};
String csvFile = "output.csv"; // ระบุที่ตั้งไฟล์ CSV สำหรับเอาต์พุต
try (BufferedWriter bw = new BufferedWriter(new FileWriter(csvFile))) {
StringBuilder sb = new StringBuilder();
for (String value : data) {
sb.append(value).append(","); // สมมติว่าจุลภาคคือตัวคั่น
}
sb.deleteCharAt(sb.length() - 1); // ลบจุลภาคตัวสุดท้าย
bw.write(sb.toString());
bw.newLine();
} catch (IOException e) {
e.printStackTrace();
}
}
}
การใช้ไลบรารีจากบุคคลที่สาม: Apache Commons CSV
Apache Commons CSV เป็นไลบรารียอดนิยมสำหรับการจัดการไฟล์ CSV ใน Java มันช่วยให้การอ่านและเขียนไฟล์ CSV ง่ายขึ้นอย่างมาก
เพิ่มการขึ้นต่อของโปรเจกต์:
สำหรับ Maven:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.9.0</version> <!-- ตรวจสอบเวอร์ชันล่าสุด -->
</dependency>
การอ่านไฟล์ CSV:
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
import java.io.Reader;
import java.io.FileReader;
import java.io.IOException;
public class ApacheReadCSVExample {
public static void main(String[] args) {
String csvFile = "data.csv";
try (Reader reader = new FileReader(csvFile);
CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT)) {
for (CSVRecord csvRecord : csvParser) {
// เข้าถึงค่าโดยใช้ดัชนีของคอลัมน์
String columnOne = csvRecord.get(0);
String columnTwo = csvRecord.get(1);
System.out.println(columnOne + " " + columnTwo);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
การเขียนข้อมูลลงไฟล์ CSV:
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class ApacheWriteCSVExample {
public static void main(String[] args) {
String[] headers = {"First Name", "Last Name", "Age", "City"};
String[] data = {"John", "Doe", "30", "New York"};
try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.csv"));
CSVPrinter csvPrinter = new CSVPrinter(writer, CSVFormat.DEFAULT.withHeader(headers))) {
csvPrinter.printRecord((Object[]) data); // การแคสต์เป็น Object[] จำเป็นที่นี่
} catch (IOException e) {
e.printStackTrace();
}
}
}
Apache Commons CSV จัดการความซับซ้อนเช่นคำพูดและจุลภาคภายในฟิลด์โดยอัตโนมัติ ทำให้เป็นตัวเลือกที่แข็งแกร่งสำหรับการจัดการ CSV ใน Java