العمل مع CSV في Java: دليل شامل للقراءة والكتابة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

العمل مع CSV في Java: دليل شامل

CSV (قيم مفصولة بفواصل) هو أحد أكثر التنسيقات شيوعًا لتخزين وتبادل البيانات الجدولية. في Java، توجد عدة طرق للعمل مع ملفات CSV: من التحليل اليدوي إلى استخدام المكتبات المتخصصة. في هذه المقالة، سنستعرض الأساليب الرئيسية، بما في ذلك الأدوات القياسية في Java والمكتبات الخارجية الشائعة.



1. الأسلوب القياسي: قراءة CSV يدويًا

للمشاريع البسيطة، يمكن الاستغناء عن المكتبات الخارجية. نستخدم BufferedReader و String.split():



import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import java.util.List;

public class SimpleCSVReader { public static List<String[]> readCSV(String filePath) { List<String[]> rows = new ArrayList<>(); String line; try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { while ((line = br.readLine()) != null) { String[] values = line.split(","); rows.add(values); } } catch (IOException e) { e.printStackTrace(); } return rows; } public static void main(String[] args) { List<String[]> data = readCSV("data.csv"); for (String[] row : data) { System.out.println(String.join(" | ", row)); } }}


العيوب: لا يعالج علامات الاقتباس، أو هروب الفواصل داخل الحقول، أو فواصل الأسطر. للإنتاج، من الأفضل استخدام المكتبات.



2. OpenCSV — مكتبة قوية وبسيطة

OpenCSV هي واحدة من أشهر المكتبات للعمل مع CSV في Java. تحل جميع مشاكل التحليل: علامات الاقتباس، الهروب، الفواصل المختلفة.



التثبيت (Maven):

<dependency>    <groupId>com.opencsv</groupId>    <artifactId>opencsv</artifactId>    <version>5.9</version></dependency>


قراءة CSV باستخدام OpenCSV:

import com.opencsv.CSVReader;import com.opencsv.exceptions.CsvValidationException;import java.io.FileReader;import java.io.IOException;

public class OpenCSVReader { public static void main(String[] args) { try (CSVReader reader = new CSVReader(new FileReader("data.csv"))) { String[] nextLine; while ((nextLine = reader.readNext()) != null) { System.out.println(String.join(" | ", nextLine)); } } catch (IOException | CsvValidationException e) { e.printStackTrace(); } }}


كتابة CSV باستخدام OpenCSV:

import com.opencsv.CSVWriter;import java.io.FileWriter;import java.io.IOException;

public class OpenCSVWriter { public static void main(String[] args) { String[] header = {"Name", "Age", "Email"}; String[] row1 = {"Alice", "30", "alice@example.com"}; String[] row2 = {"Bob", "25", "bob@example.com"}; try (CSVWriter writer = new CSVWriter(new FileWriter("output.csv"))) { writer.writeNext(header); writer.writeNext(row1); writer.writeNext(row2); } catch (IOException e) { e.printStackTrace(); } }}


3. Apache Commons CSV — المرونة والأداء

Apache Commons CSV هي مكتبة قوية أخرى تدعم تنسيقات مختلفة (CSV, TSV, Excel).



التثبيت (Maven):

<dependency>    <groupId>org.apache.commons</groupId>    <artifactId>commons-csv</artifactId>    <ver                    

توصيات