From 5db1c3d8f352ba308ffcab29cba8a11ce2f8e4a3 Mon Sep 17 00:00:00 2001 From: Siben Nayak Date: Tue, 3 Apr 2018 15:28:38 +0530 Subject: [PATCH 1/2] [BAEL-1675] Write to a File in Kotlin --- .../com/baeldung/filesystem/FileWriter.kt | 19 +++++++++++ .../com/baeldung/filesystem/FileWriterTest.kt | 33 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 core-kotlin/src/main/kotlin/com/baeldung/filesystem/FileWriter.kt create mode 100644 core-kotlin/src/test/kotlin/com/baeldung/filesystem/FileWriterTest.kt diff --git a/core-kotlin/src/main/kotlin/com/baeldung/filesystem/FileWriter.kt b/core-kotlin/src/main/kotlin/com/baeldung/filesystem/FileWriter.kt new file mode 100644 index 0000000000..20d9c963c7 --- /dev/null +++ b/core-kotlin/src/main/kotlin/com/baeldung/filesystem/FileWriter.kt @@ -0,0 +1,19 @@ +package com.baeldung.filesystem + +import java.io.File + +class FileWriter { + + fun writeFileUsingPrintWriter(fileName: String, fileContent: String) = + File(fileName).printWriter().use { out -> out.println(fileContent) } + + fun writeFileUsingBufferedWriter(fileName: String, fileContent: String) = + File(fileName).bufferedWriter().use { out -> out.write(fileContent) } + + fun writeFileDirectly(fileName: String, fileContent: String) = + File(fileName).writeText(fileContent) + + fun writeFileDirectlyAsBytes(fileName: String, fileContent: String) = + File(fileName).writeBytes(fileContent.toByteArray()) + +} \ No newline at end of file diff --git a/core-kotlin/src/test/kotlin/com/baeldung/filesystem/FileWriterTest.kt b/core-kotlin/src/test/kotlin/com/baeldung/filesystem/FileWriterTest.kt new file mode 100644 index 0000000000..43a9957de1 --- /dev/null +++ b/core-kotlin/src/test/kotlin/com/baeldung/filesystem/FileWriterTest.kt @@ -0,0 +1,33 @@ +package com.baeldung.filesystem + +import org.junit.jupiter.api.Test + +internal class FileWriterTest { + + private val fileName = "src/test/resources/Kotlin.out" + + private val fileContent = "Kotlin\nConcise, Safe, Interoperable, Tool-friendly" + + private val fileWriter = FileWriter() + + @Test + fun whenWrittenWithPrintWriter_thenCorrect() { + fileWriter.writeFileUsingPrintWriter(fileName, fileContent) + } + + @Test + fun whenWrittenWithBufferedWriter_thenCorrect() { + fileWriter.writeFileUsingBufferedWriter(fileName, fileContent) + } + + @Test + fun whenWrittenDirectly_thenCorrect() { + fileWriter.writeFileDirectly(fileName, fileContent) + } + + @Test + fun whenWrittenDirectlyAsBytes_thenCorrect() { + fileWriter.writeFileDirectlyAsBytes(fileName, fileContent) + } + +} \ No newline at end of file From c2d89c8679444fa72fa8b6a00729ee5d33149e11 Mon Sep 17 00:00:00 2001 From: Siben Nayak Date: Sat, 5 May 2018 18:24:13 +0530 Subject: [PATCH 2/2] Fixed unit test cases and formatting --- .../main/kotlin/com/baeldung/filesystem/FileWriter.kt | 6 +++--- .../kotlin/com/baeldung/filesystem/FileWriterTest.kt | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/core-kotlin/src/main/kotlin/com/baeldung/filesystem/FileWriter.kt b/core-kotlin/src/main/kotlin/com/baeldung/filesystem/FileWriter.kt index 20d9c963c7..6dc9b95f1f 100644 --- a/core-kotlin/src/main/kotlin/com/baeldung/filesystem/FileWriter.kt +++ b/core-kotlin/src/main/kotlin/com/baeldung/filesystem/FileWriter.kt @@ -5,13 +5,13 @@ import java.io.File class FileWriter { fun writeFileUsingPrintWriter(fileName: String, fileContent: String) = - File(fileName).printWriter().use { out -> out.println(fileContent) } + File(fileName).printWriter().use { out -> out.print(fileContent) } fun writeFileUsingBufferedWriter(fileName: String, fileContent: String) = - File(fileName).bufferedWriter().use { out -> out.write(fileContent) } + File(fileName).bufferedWriter().use { out -> out.write(fileContent) } fun writeFileDirectly(fileName: String, fileContent: String) = - File(fileName).writeText(fileContent) + File(fileName).writeText(fileContent) fun writeFileDirectlyAsBytes(fileName: String, fileContent: String) = File(fileName).writeBytes(fileContent.toByteArray()) diff --git a/core-kotlin/src/test/kotlin/com/baeldung/filesystem/FileWriterTest.kt b/core-kotlin/src/test/kotlin/com/baeldung/filesystem/FileWriterTest.kt index 43a9957de1..91c66a4fee 100644 --- a/core-kotlin/src/test/kotlin/com/baeldung/filesystem/FileWriterTest.kt +++ b/core-kotlin/src/test/kotlin/com/baeldung/filesystem/FileWriterTest.kt @@ -1,6 +1,8 @@ package com.baeldung.filesystem import org.junit.jupiter.api.Test +import java.io.File +import kotlin.test.assertEquals internal class FileWriterTest { @@ -13,21 +15,29 @@ internal class FileWriterTest { @Test fun whenWrittenWithPrintWriter_thenCorrect() { fileWriter.writeFileUsingPrintWriter(fileName, fileContent) + + assertEquals(fileContent, File(fileName).readText()) } @Test fun whenWrittenWithBufferedWriter_thenCorrect() { fileWriter.writeFileUsingBufferedWriter(fileName, fileContent) + + assertEquals(fileContent, File(fileName).readText()) } @Test fun whenWrittenDirectly_thenCorrect() { fileWriter.writeFileDirectly(fileName, fileContent) + + assertEquals(fileContent, File(fileName).readText()) } @Test fun whenWrittenDirectlyAsBytes_thenCorrect() { fileWriter.writeFileDirectlyAsBytes(fileName, fileContent) + + assertEquals(fileContent, File(fileName).readText()) } } \ No newline at end of file