diff --git a/README.md b/README.md index 0d1147a..d364581 100644 --- a/README.md +++ b/README.md @@ -223,6 +223,13 @@ csvWriter().openAsync(testFileName) { } ``` +#### Write as String + +```kotlin +val rows = listOf(listOf("a", "b", "c"), listOf("d", "e", "f")) +val csvString: String = csvWriter().writeAllAsString(rows) //a,b,c\r\nd,e,f\r\n +``` + #### long-running write (manual control for file close) If you want to close a file writer manually for performance reasons (e.g. streaming scenario), you can diff --git a/src/jvmMain/kotlin/com/github/doyaaaaaken/kotlincsv/client/CsvWriter.kt b/src/jvmMain/kotlin/com/github/doyaaaaaken/kotlincsv/client/CsvWriter.kt index 97eab7b..ffddad9 100644 --- a/src/jvmMain/kotlin/com/github/doyaaaaaken/kotlincsv/client/CsvWriter.kt +++ b/src/jvmMain/kotlin/com/github/doyaaaaaken/kotlincsv/client/CsvWriter.kt @@ -51,7 +51,7 @@ actual class CsvWriter actual constructor( writer.use { it.write() } } - fun writeString(write: ICsvFileWriter.() -> Unit): String { + internal fun writeAsString(write: ICsvFileWriter.() -> Unit): String { val baos = ByteArrayOutputStream() open(baos, write) return String(baos.toByteArray(), Charset.forName(ctx.charset)) @@ -144,7 +144,7 @@ actual class CsvWriter actual constructor( /** * write all rows to string */ - fun writeAll(rows: List>): String { - return writeString { writeRows(rows) } + fun writeAllAsString(rows: List>): String { + return writeAsString { writeRows(rows) } } } diff --git a/src/jvmTest/kotlin/com/github/doyaaaaaken/kotlincsv/client/CsvWriterTest.kt b/src/jvmTest/kotlin/com/github/doyaaaaaken/kotlincsv/client/CsvWriterTest.kt index fb70c66..2b6b3ef 100644 --- a/src/jvmTest/kotlin/com/github/doyaaaaaken/kotlincsv/client/CsvWriterTest.kt +++ b/src/jvmTest/kotlin/com/github/doyaaaaaken/kotlincsv/client/CsvWriterTest.kt @@ -91,13 +91,13 @@ class CsvWriterTest : WordSpec({ } } - "writeString method" should { + "writeAsString method" should { val row1 = listOf("a", "b", null) val row2 = listOf("d", "2", "1.0") val expected = "a,b,\r\nd,2,1.0\r\n" "write simple csv data to String" { - val actual = csvWriter().writeString { + val actual = csvWriter().writeAsString { writeRow(row1) writeRow(row2) } @@ -128,7 +128,7 @@ class CsvWriterTest : WordSpec({ } "write data to String" { - val actual = csvWriter().writeAll(rows) + val actual = csvWriter().writeAllAsString(rows) actual shouldBe expected } }