readByteString

Consumes all bytes from this source and wraps it into a byte string.

Throws

if the source is closed.

Samples

import kotlinx.io.*
import kotlinx.io.bytestring.ByteString
import kotlinx.io.bytestring.encodeToByteString
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertTrue

fun main() { 
   //sampleStart 
   val buffer = Buffer().also { it.write(byteArrayOf(1, 2, 3, 4, 5)) }

assertEquals(ByteString(1, 2), buffer.readByteString(2)) // reads only two bytes
assertEquals(ByteString(3, 4, 5), buffer.readByteString()) // reads until exhaustion
assertTrue(buffer.exhausted()) 
   //sampleEnd
}

Consumes exactly byteCount bytes from this source and wraps it into a byte string.

Parameters

byteCount

the number of bytes to read from the source.

Throws

when the source is exhausted before reading byteCount bytes from it.

if the source is closed.

Samples

import kotlinx.io.*
import kotlinx.io.bytestring.ByteString
import kotlinx.io.bytestring.encodeToByteString
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertTrue

fun main() { 
   //sampleStart 
   val buffer = Buffer().also { it.write(byteArrayOf(1, 2, 3, 4, 5)) }

assertEquals(ByteString(1, 2), buffer.readByteString(2)) // reads only two bytes
assertEquals(ByteString(3, 4, 5), buffer.readByteString()) // reads until exhaustion
assertTrue(buffer.exhausted()) 
   //sampleEnd
}