1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
/*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package test.io
import kotlin.test.*
import java.io.Writer
import java.io.BufferedReader
import kotlin.random.Random
class IOStreamsTest {
@Test fun testGetStreamOfFile() {
val tmpFile = createTempFile()
var writer: Writer? = null
try {
writer = tmpFile.outputStream().writer()
writer.write("Hello, World!")
} finally {
writer?.close()
}
val act: String?
var reader: BufferedReader? = null
try {
reader = tmpFile.inputStream().reader().buffered()
act = reader.readLine()
} finally {
reader?.close()
}
assertEquals("Hello, World!", act)
}
@Test fun testInputStreamIterator() {
val x = ByteArray(10) { it.toByte() }
val result = mutableListOf<Byte>()
x.inputStream().buffered().use { stream ->
for (b in stream) {
result += b
}
}
assertEquals(x.asList(), result)
}
@Test fun readWriteBytes() {
val file = createTempFile("temp", Random.nextLong().toString())
try {
val bytes = Random.nextBytes(256_000)
file.outputStream().use { outStream ->
outStream.write(bytes)
}
val inBytes = file.inputStream().use { inStream ->
inStream.readBytes()
}
assertTrue(inBytes contentEquals bytes, "Expected to read the same content back, read bytes of length ${inBytes.size}")
} finally {
file.delete()
}
}
}
|