Skip to content

Commit 64e9b41

Browse files
authored
FileReader idiomatic refactor (eugenp#3936)
1 parent 0e95588 commit 64e9b41

1 file changed

Lines changed: 8 additions & 27 deletions

File tree

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,20 @@
11
package com.baeldung.filesystem
22

3-
import java.io.BufferedReader
43
import java.io.File
5-
import java.io.InputStream
64

75
class FileReader {
86

9-
fun readFileLineByLineUsingForEachLine(fileName: String): List<String> {
10-
val lineList = mutableListOf<String>()
11-
File(fileName).forEachLine { line -> lineList.add(line) }
12-
return lineList
13-
}
7+
fun readFileLineByLineUsingForEachLine(fileName: String) = File(fileName).forEachLine { println(it) }
148

15-
fun readFileAsLinesUsingUseLines(fileName: String): List<String> {
16-
val lineList = mutableListOf<String>()
17-
File(fileName).useLines { lines -> lineList.addAll(lines) }
18-
return lineList
19-
}
9+
fun readFileAsLinesUsingUseLines(fileName: String): List<String> = File(fileName)
10+
.useLines { it.toList() }
2011

21-
fun readFileAsLinesUsingBufferedReader(fileName: String): List<String> {
22-
val bufferedReader: BufferedReader = File(fileName).bufferedReader()
23-
return bufferedReader.readLines()
24-
}
12+
fun readFileAsLinesUsingBufferedReader(fileName: String): List<String> = File(fileName).bufferedReader().readLines()
2513

26-
fun readFileAsLinesUsingReadLines(fileName: String): List<String> {
27-
return File(fileName).readLines()
28-
}
14+
fun readFileAsLinesUsingReadLines(fileName: String): List<String> = File(fileName).readLines()
2915

30-
fun readFileAsTextUsingInputStream(fileName: String): String {
31-
val inputStream: InputStream = File(fileName).inputStream()
32-
return inputStream.readBytes().toString(Charsets.UTF_8)
33-
}
34-
35-
fun readFileDirectlyAsText(fileName: String): String {
36-
return File(fileName).readText(Charsets.UTF_8)
37-
}
16+
fun readFileAsTextUsingInputStream(fileName: String) =
17+
File(fileName).inputStream().readBytes().toString(Charsets.UTF_8)
3818

19+
fun readFileDirectlyAsText(fileName: String): String = File(fileName).readText(Charsets.UTF_8)
3920
}

0 commit comments

Comments
 (0)