package Ġpw . bin om . io . http čĊč Ċ import Ġpw . bin om .* č Ċ import Ġpw . bin om . io . ByteArray Output č Ċ import Ġpw . bin om . io . utf 8 Append able č Ċ import Ġkotlin . test . Test č Ċ import Ġkotlin . test . assertEquals čĊč Ċ fun ĠByteBuffer . print () Ġ{ čĊĠĠĠ Ġval Ġp Ġ= Ġposition čĊĠĠĠ Ġval Ġl Ġ= Ġlimit čĊĠĠĠ Ġval Ġbuf Ġ= ĠByteBuffer . alloc ( 4 ) čĊĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠ Ġwhile Ġ( remaining Ġ> Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġread Utf 8 Char ( buf ) !! čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( c ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'\ r ' Ġ-> Ġprint ("\\ r ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'\ n ' Ġ-> Ġprintln ("\\ n ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġprint ( c ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} Ġfinally Ġ{ čĊĠĠĠĠĠĠĠ Ġposition Ġ= Ġp čĊĠĠĠĠĠĠĠ Ġlimit Ġ= Ġl čĊĠĠĠ Ġ} č Ċ } čĊč Ċ class ĠAsync Chunk ed Output Test Ġ{ čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġtest () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= ĠByteArray Output () čĊĠĠĠĠĠĠĠ Ġval Ġchunk ed Ġ= ĠAsync Chunk ed Output ( output . async Output ()) čĊčĊĠĠĠĠĠĠĠ Ġasync Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsb Ġ= Ġchunk ed . utf 8 Append able () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append (" Wiki ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġchunk ed . flush () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append (" pedia ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . async Close () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġval Ġout Ġ= Ġoutput . data čĊĠĠĠĠĠĠĠ Ġout . flip () čĊĠĠĠĠĠĠĠ Ġval Ġbuf Ġ= ĠByteBuffer . alloc ( 4 ) čĊĠĠĠĠĠĠĠ ĠassertEquals (' 4 ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals ('\ r ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals ('\ n ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals (' W ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals (' i ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals (' k ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals (' i ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals ('\ r ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals ('\ n ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals (' 5 ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals ('\ r ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals ('\ n ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals (' p ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals (' e ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals (' d ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals (' i ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals (' a ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals ('\ r ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals ('\ n ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals (' 0 ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals ('\ r ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals ('\ n ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals ('\ r ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals ('\ n ', Ġout . read Utf 8 Char ( buf )) čĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġout . remaining ) čĊĠĠĠĠĠĠĠ Ġoutput . close () čĊĠĠĠ Ġ} č Ċ }