Kotlin में CSV के साथ कार्य: लाइब्रेरीज़, पार्सिंग और डेटा लेखन

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Kotlin में CSV के साथ कार्य: लाइब्रेरीज़ का अवलोकन और व्यावहारिक उदाहरण

\n\n

CSV (Comma-Separated Values) — सारणीबद्ध डेटा के आदान-प्रदान के लिए सबसे सामान्य प्रारूपों में से एक है। Kotlin में, Java की तरह ही, CSV के साथ कार्य करने के लिए कई परिपक्व लाइब्रेरीज़ मौजूद हैं। इस लेख में हम तीन मुख्य दृष्टिकोणों पर विचार करेंगे: हल्की लाइब्रेरी kotlin-csv, शक्तिशाली OpenCSV और क्लासिक Apache Commons CSV। आप सीखेंगे कि न्यूनतम प्रयास के साथ CSV फ़ाइलों को कैसे पढ़ें, लिखें और प्रोसेस करें।

\n\n

1. kotlin-csv लाइब्रेरी (अनुशंसित विकल्प)

\n\n

kotlin-csv — यह एक मूल Kotlin लाइब्रेरी है, जो पूरी तरह से Kotlin में Java लाइब्रेरीज़ पर निर्भरता के बिना लिखी गई है। यह Kotlin पर आधुनिक प्रोजेक्ट्स के लिए आदर्श है।

\n\n

कनेक्शन (Gradle)

\n
dependencies {\n    implementation("com.github.doyaaaaaken:kotlin-csv-jvm:1.9.3")\n}
\n\n

CSV पढ़ना

\n
import com.github.doyaaaaaken.kotlincsv.dsl.csvReader\n\nfun main() {\n    val csvData = """\n        name,age,city\n        Alice,30,New York\n        Bob,25,London\n        Charlie,35,Tokyo\n    """.trimIndent()\n\n    val rows: List<List<String>> = csvReader().readAll(csvData)\n    rows.forEach { row ->\n        println("${row[0]} — ${row[1]} वर्ष, ${row[2]}")\n    }\n}
\n\n

CSV लिखना

\n
import com.github.doyaaaaaken.kotlincsv.dsl.csvWriter\n\nfun main() {\n    val data = listOf(\n        listOf("product", "price", "quantity"),\n        listOf("Laptop", "1200", "5"),\n        listOf("Mouse", "25", "50")\n    )\n    csvWriter().open("inventory.csv") {\n        writeRows(data)\n    }\n    println("फ़ाइल inventory.csv बनाई गई")\n}
\n\n

2. OpenCSV — सिद्ध Java लाइब्रेरी

\n\n

OpenCSV CSV के साथ कार्य करने के लिए सबसे लोकप्रिय Java लाइब्रेरीज़ में से एक है। यह पूर्ण संगतता के कारण Kotlin में बहुत अच्छी तरह से काम करती है।

\n\n

कनेक्शन (Gradle)

\n
dependencies {\n    implementation("com.opencsv:opencsv:5.9")\n}
\n\n

क्लास में मैपिंग के साथ पढ़ना

\n
import com.opencsv.bean.CsvToBeanBuilder\nimport java.io.FileReader\n\ndata class Person(\n    @field:com.opencsv.bean.CsvBindByName(column = "name")\n    val name: String,\n    @field:com.opencsv.bean.CsvBindByName(column = "age")\n    val age: Int,\n    @field:com.opencsv.bean.CsvBindByName(column = "city")\n    val city: String\n)\n\nfun main() {\n    val beans = CsvToBeanBuilder<Person>(FileReader("people.csv"))\n        .withType(Person::class.java)\n        .build()\n        .parse()\n\n    beans.forEach { println("${it.name} (${it.age}) — ${it.city}") }\n}
\n\n

ऑब्जेक्ट लिखना

\n
import com.opencsv.bean.StatefulBeanToCsv\nimport com.opencsv.bean.StatefulBeanToCsvBuilder\nimport java.io.FileWriter\n\nfun main() {\n    val people = listOf(\n        Person("Alice", 30, "New York"),\n        Person("Bob", 25, "London")\n    )\n    val writer = FileWriter("output.csv")\n    val beanToCsv: StatefulBeanToCsv<Person> = StatefulBeanToCsvBuilder(writer).build()\n    beanToCsv.write(people)\n    writer.close()\n    println("तैयार")\n}
\n\n

3. Apache Commons CSV — औद्योगिक मानक

\n\n

Apache Foundation की लाइब्रेरी, जो विभिन्न CSV प्रारूपों (Excel, MySQL, RFC 4180) का समर्थन करती है।

\n\n

कनेक्शन (Gradle)

\n
dependencies {\n    implementation("org.apache.commons:commons-csv:1.11.0")\n}
\n\n

हेडर के साथ पढ़ना

\n
import org.apache.commons.csv.CSVFormat\nimport org.apache.commons.csv.CSVParser\nimport java.io.FileReader\n\nfun main() {\n    val parser = CSVParser.parse(\n        FileReader("data.csv"),\n        CSVFormat.DEFAULT.withFirstRecordAsHeader()\n    )\n    parser.forEach { record ->\n        val name = record["name"]\n        val age = record["age"]\n        println("$name, आयु $age")\n    }\n}
\n\n

लेखन के साथ

अनुशंसाएँ