clojure {:deps {net.cgrand/clojure-csv {:mvn/version "1.3.2"}}} clojure (ns my-app.core (:require [clojure.data.csv :as csv] [clojure.java.io :as io])) (defn read-csv [path] (let [csv-data (csv/read-csv (io/reader path))] (doseq [row csv-data] (println row)))) (read-csv "data.csv") clojure (ns my-app.core (:require [clojure.data.csv :as csv] [clojure.java.io :as io])) (defn write-csv [data path] (with-open [wtr (io/writer path)] (csv/write-csv wtr data))) (write-csv [["John" "Doe" "john@example.com"] ["Jane" "Smith" "jane@example.com"]] "data.csv") <dependency> <groupId>com.opencsv</groupId> <artifactId>opencsv</artifactId> <version>5.5.2</version> </dependency> import com.opencsv.CSVReader; import com.opencsv.CSVWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class Main { public static void readCSV(String path) throws IOException { try (CSVReader reader = new CSVReader(new FileReader(path))) { String[] nextLine; while ((nextLine = reader.readNext()) != null) { for (String cell : nextLine) { System.out.print(cell + " "); } System.out.println(); } } } public static void writeCSV(String path, String[][] data) throws IOException { try (CSVWriter writer = new CSVWriter(new FileWriter(path))) { for (String[] row : data) { writer.writeNext(row); } } } public static void main(String[] args) throws IOException { readCSV("data.csv"); String[][] data = { {"John", "Doe", "john@example.com"}, {"Jane", "Smith", "jane@example.com"} }; writeCSV("data.csv", data); } }


上一篇:
下一篇:
切换中文