IO second review: empty File.subPath() allowed, OutputStream.bufferedWriter() added,
normalize(), startsWith(), endsWith() rewritten, LinesStream --> LinesSequence, File.replaceBytes() / replaceText() rolled back to writeBytes() / writeText(), some exception messages formulated more clearly, refactorings, comments, relativeTo() slightly optimized, additional tests
This commit is contained in:
@@ -733,21 +733,22 @@ class FilesTest {
|
||||
test fun testCopyTo() {
|
||||
val srcFile = createTempFile()
|
||||
val dstFile = createTempFile()
|
||||
srcFile.replaceText("Hello, World!")
|
||||
srcFile.writeText("Hello, World!", "UTF8")
|
||||
try {
|
||||
srcFile.copyTo(dstFile)
|
||||
assert(false)
|
||||
} catch (e: FileAlreadyExistsException) {
|
||||
println(e.getMessage())
|
||||
}
|
||||
|
||||
var len = srcFile.copyTo(dstFile, overwrite = true)
|
||||
assertEquals(13L, len)
|
||||
assertEquals(srcFile.readText(), dstFile.readText())
|
||||
assertEquals(srcFile.readText(), dstFile.readText("UTF8"))
|
||||
|
||||
assert(dstFile.delete())
|
||||
len = srcFile.copyTo(dstFile)
|
||||
assertEquals(13L, len)
|
||||
assertEquals(srcFile.readText(), dstFile.readText())
|
||||
assertEquals(srcFile.readText("UTF8"), dstFile.readText())
|
||||
|
||||
assert(dstFile.delete())
|
||||
dstFile.mkdir()
|
||||
@@ -811,8 +812,8 @@ class FilesTest {
|
||||
createTempDir(prefix = "d1_", directory = subDir1)
|
||||
val file1 = createTempFile(prefix = "f1_", directory = src)
|
||||
val file2 = createTempFile(prefix = "f2_", directory = subDir1)
|
||||
file1.replaceText("hello")
|
||||
file2.replaceText("wazzup")
|
||||
file1.writeText("hello")
|
||||
file2.writeText("wazzup")
|
||||
createTempDir(prefix = "d1_", directory = subDir2)
|
||||
|
||||
assert(src.copyRecursively(dst))
|
||||
|
||||
@@ -15,10 +15,12 @@ fun sample(): Reader = StringReader("Hello\nWorld");
|
||||
class ReadWriteTest {
|
||||
test fun testAppendText() {
|
||||
val file = File.createTempFile("temp", System.nanoTime().toString())
|
||||
file.replaceText("Hello\n")
|
||||
file.appendText("World")
|
||||
file.writeText("Hello\n", "UTF8")
|
||||
file.appendText("World\n", "UTF8")
|
||||
file.appendText("Again")
|
||||
|
||||
assertEquals("Hello\nWorld", file.readText())
|
||||
assertEquals("Hello\nWorld\nAgain", file.readText())
|
||||
assertEquals(listOf("Hello", "World", "Again"), file.readLines("UTF8"))
|
||||
file.deleteOnExit()
|
||||
}
|
||||
|
||||
@@ -71,34 +73,34 @@ class ReadWriteTest {
|
||||
writer.close()
|
||||
|
||||
//file.replaceText("Hello\nWorld")
|
||||
file.forEachBlock {(arr: ByteArray, size: Int) ->
|
||||
file.forEachBlock { arr: ByteArray, size: Int ->
|
||||
assertTrue(size >= 11 && size <= 12, size.toString())
|
||||
assertTrue(arr.contains('W'.toByte()))
|
||||
}
|
||||
val list = ArrayList<String>()
|
||||
file.forEachLine {
|
||||
file.forEachLine("UTF8", {
|
||||
list.add(it)
|
||||
}
|
||||
})
|
||||
assertEquals(arrayListOf("Hello", "World"), list)
|
||||
val text = file.inputStream().reader().readText()
|
||||
assertTrue(text.contains("Hello"))
|
||||
assertTrue(text.contains("World"))
|
||||
|
||||
file.replaceText("")
|
||||
file.writeText("")
|
||||
var c = 0
|
||||
file.forEachLine { c++ }
|
||||
assertEquals(0, c)
|
||||
|
||||
file.replaceText(" ")
|
||||
file.writeText(" ")
|
||||
file.forEachLine { c++ }
|
||||
assertEquals(1, c)
|
||||
|
||||
file.replaceText(" \n")
|
||||
file.writeText(" \n")
|
||||
c = 0
|
||||
file.forEachLine { c++ }
|
||||
assertEquals(1, c)
|
||||
|
||||
file.replaceText(" \n ")
|
||||
file.writeText(" \n ")
|
||||
c = 0
|
||||
file.forEachLine { c++ }
|
||||
assertEquals(2, c)
|
||||
@@ -167,5 +169,7 @@ class ReadWriteTest {
|
||||
val url = URL("http://kotlinlang.org")
|
||||
val text = url.readText()
|
||||
assertFalse(text.isEmpty())
|
||||
val text2 = url.readText("UTF8")
|
||||
assertFalse(text2.isEmpty())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user