Kotlin:
Travailler avec CSV
Comment :
Kotlin, étant un langage de programmation à typage statique qui s’exécute sur la JVM, n’inclut pas de bibliothèque intégrée pour la manipulation des fichiers CSV. Cependant, vous pouvez utiliser les classes Java BufferedReader
et FileWriter
pour les opérations de base, ou profiter de bibliothèques tierces populaires comme kotlinx.serialization
et opencsv
pour des fonctionnalités plus avancées.
Lire un fichier CSV en utilisant BufferedReader :
import java.io.BufferedReader
import java.io.FileReader
fun main() {
val chemin = "data.csv"
val br = BufferedReader(FileReader(chemin))
br.useLines { lignes ->
lignes.forEach { ligne ->
val cols = ligne.split(',')
println(cols)
}
}
}
Exemple de sortie :
[Name, Age, City]
[John Doe, 30, New York]
[Jane Smith, 25, London]
Écrire dans un fichier CSV en utilisant FileWriter :
import java.io.FileWriter
fun main() {
val données = listOf(
listOf("Name", "Age", "City"),
listOf("John Doe", "30", "New York"),
listOf("Jane Smith", "25", "London")
)
FileWriter("output.csv").use { writer ->
données.forEach { row ->
writer.write(row.joinToString(",") + "\n")
}
}
}
Cela va créer ou remplacer output.csv
avec les données fournies.
Utilisation de kotlinx.serialization pour la sérialisation CSV :
D’abord, ajoutez la dépendance à votre build.gradle.kts
:
implementation("org.jetbrains.kotlinx:kotlinx-serialization-csv:0.3.0")
Remarque : Assurez-vous d’avoir la bonne version et configuration du dépôt.
Ensuite, définissez votre classe de données et utilisez le format Csv
pour la sérialisation :
import kotlinx.serialization.Serializable
import kotlinx.serialization.csv.Csv
import kotlinx.serialization.encodeToString
@Serializable
data class Personne(val nom: String, val âge: Int, la ville: String)
fun main() {
val formatCsv = Csv { delimiter = ',' }
val données = listOf(
Personne("John Doe", 30, "New York"),
Personne("Jane Smith", 25, "London")
)
val donnéesCsv = formatCsv.encodeToString(données)
println(donnéesCsv)
}
Exemple de sortie :
John Doe,30,New York
Jane Smith,25,London
Utilisation d’OpenCSV pour des opérations avancées :
Ajoutez OpenCSV aux dépendances de votre projet :
implementation("com.opencsv:opencsv:5.6")
Lecture et écriture avec OpenCSV :
import com.opencsv.CSVReader
import com.opencsv.CSVWriter
import java.io.FileReader
import java.io.FileWriter
fun main() {
// Lecture CSV
CSVReader(FileReader("data.csv")).use { lecteurCsv ->
val entrées = lecteurCsv.readAll()
entrées.forEach { println(it.toList()) }
}
// Écriture CSV
CSVWriter(FileWriter("output.csv")).use { rédacteurCsv ->
val entrées = listOf(
arrayOf("Name", "Age", "City"),
arrayOf("John Doe", "30", "New York"),
arrayOf("Jane Smith", "25", "London")
)
rédacteurCsv.writeAll(entrées)
}
}
Ces extraits de code démontrent la flexibilité que Kotlin offre lorsque vous travaillez avec des fichiers CSV, vous permettant de choisir la méthode qui correspond le mieux aux besoins de votre projet.