readAtMostTo
Writes up to ByteBuffer.remaining bytes from this buffer to the sink. Return the number of bytes written.
Parameters
sink
the sink to write data to.
Samples
import kotlinx.io.*
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
import java.nio.ByteBuffer
import java.util.zip.GZIPInputStream
import java.util.zip.GZIPOutputStream
import kotlin.test.Test
import kotlin.test.assertContentEquals
import kotlin.test.assertEquals
import kotlin.test.assertTrue
fun main() {
//sampleStart
val buffer = Buffer()
val nioByteBuffer = ByteBuffer.allocate(1024)
buffer.writeString("hello")
val bytesRead = buffer.readAtMostTo(nioByteBuffer)
assertEquals(5, bytesRead)
assertEquals(5, nioByteBuffer.capacity() - nioByteBuffer.remaining())
nioByteBuffer.position(0)
nioByteBuffer.limit(5)
val bytesWrite = buffer.write(nioByteBuffer)
assertEquals(5, bytesWrite)
assertEquals("hello", buffer.readString())
//sampleEnd
}
Reads at most ByteBuffer.remaining bytes from this source into sink and returns the number of bytes read.
Parameters
sink
the sink to write the data to.
Throws
when the source is closed.
Samples
import kotlinx.io.*
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
import java.nio.ByteBuffer
import java.util.zip.GZIPInputStream
import java.util.zip.GZIPOutputStream
import kotlin.test.Test
import kotlin.test.assertContentEquals
import kotlin.test.assertEquals
import kotlin.test.assertTrue
fun main() {
//sampleStart
val buffer = Buffer()
val nioByteBuffer = ByteBuffer.allocate(1024)
buffer.writeString("hello")
val bytesRead = buffer.readAtMostTo(nioByteBuffer)
assertEquals(5, bytesRead)
assertEquals(5, nioByteBuffer.capacity() - nioByteBuffer.remaining())
nioByteBuffer.position(0)
nioByteBuffer.limit(5)
val bytesWrite = buffer.write(nioByteBuffer)
assertEquals(5, bytesWrite)
assertEquals("hello", buffer.readString())
//sampleEnd
}