Kotlin:
עובדים עם CSV
איך לעשות:
Kotlin, שהיא שפת תכנות סטטית שמתבצעת על חלקת ה-JVM, אינה כוללת ספריה מובנית לעבודה עם קבצי CSV. עם זאת, ניתן להשתמש במחלקות BufferedReader
ו-FileWriter
של Java לפעולות בסיסיות, או לנצל ספריות צד שלישי פופולריות כמו kotlinx.serialization
ו-opencsv
לפונקציונליות מתקדמת יותר.
קריאה מקובץ CSV באמצעות BufferedReader:
import java.io.BufferedReader
import java.io.FileReader
fun main() {
val path = "data.csv"
val br = BufferedReader(FileReader(path))
br.useLines { lines ->
lines.forEach { line ->
val cols = line.split(',')
println(cols)
}
}
}
דוגמא לפלט:
[Name, Age, City]
[John Doe, 30, New York]
[Jane Smith, 25, London]
כתיבה לקובץ CSV באמצעות FileWriter:
import java.io.FileWriter
fun main() {
val data = listOf(
listOf("Name", "Age", "City"),
listOf("John Doe", "30", "New York"),
listOf("Jane Smith", "25", "London")
)
FileWriter("output.csv").use { writer ->
data.forEach { row ->
writer.write(row.joinToString(",") + "\n")
}
}
}
הדבר יוצר או דורס את הקובץ output.csv
עם הנתונים שסופקו.
שימוש ב-kotlinx.serialization לסריאליזציה של CSV:
תחילה, הוסף את התלות ל-build.gradle.kts
שלך:
implementation("org.jetbrains.kotlinx:kotlinx-serialization-csv:0.3.0")
הערה: הקפד לציין גרסה נכונה ותצורת מאגר.
לאחר מכן, הגדר מחלקת נתונים והשתמש בפורמט Csv
לסריאליזציה:
import kotlinx.serialization.Serializable
import kotlinx.serialization.csv.Csv
import kotlinx.serialization.encodeToString
@Serializable
data class Person(val name: String, val age: Int, val city: String)
fun main() {
val csvFormat = Csv { delimiter = ',' }
val data = listOf(
Person("John Doe", 30, "New York"),
Person("Jane Smith", 25, "London")
)
val csvData = csvFormat.encodeToString(data)
println(csvData)
}
דוגמא לפלט:
John Doe,30,New York
Jane Smith,25,London
שימוש ב-OpenCSV לפעולות מתקדמות:
הוסף את OpenCSV לתלותיות של הפרויקט שלך:
implementation("com.opencsv:opencsv:5.6")
קריאה וכתיבה עם OpenCSV:
import com.opencsv.CSVReader
import com.opencsv.CSVWriter
import java.io.FileReader
import java.io.FileWriter
fun main() {
// קריאת CSV
CSVReader(FileReader("data.csv")).use { csvReader ->
val entries = csvReader.readAll()
entries.forEach { println(it.toList()) }
}
// כתיבת CSV
CSVWriter(FileWriter("output.csv")).use { csvWriter ->
val entries = listOf(
arrayOf("Name", "Age", "City"),
arrayOf("John Doe", "30", "New York"),
arrayOf("Jane Smith", "25", "London")
)
csvWriter.writeAll(entries)
}
}
הדוגמאות הללו מדגימות את הגמישות ש-Kotlin מציעה בעבודה עם קבצי CSV, ומאפשרת לך לבחור את השיטה המתאימה ביותר לצרכי הפרויקט שלך.