package Ġpw . bin om . io . examples . file čĊč Ċ import Ġpw . bin om .* č Ċ import Ġpw . bin om . crypto . MD 5 Message Digest č Ċ import Ġpw . bin om . io .* č Ċ import Ġpw . bin om . io . file . File č Ċ import Ġpw . bin om . io . file . open Read č Ċ import Ġpw . bin om . io . file . open Write čĊč Ċ /** čĊ Ġ* ĠExample : Ġusing ĠByteArray čĊ Ġ*/ č Ċ fun Ġusing ByteArray () Ġ{ čĊĠĠĠ Ġval Ġbuffer Pool Ġ= ĠByteBuffer Pool ( 1 0 ) čĊĠĠĠ Ġval Ġfile Ġ= ĠFile (" Simple ĠFile ") čĊĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġ" Simple ĠText ". encode To ByteArray () čĊĠĠĠĠĠĠĠ Ġfile . open Write (). use Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . write Bytes ( buffer Pool , Ġdata ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . flush () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġprintln (" Write Ġdata : Ġ\" ${ data . decode ToString ()} \" ") čĊčĊĠĠĠĠĠĠĠ Ġval Ġout Ġ= ĠByteArray Output () čĊĠĠĠĠĠĠĠ Ġfile . open Read (). use Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . copy To ( out , Ġbuffer Pool ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġout . trim To Size () čĊĠĠĠĠĠĠĠ Ġout . data . clear () čĊĠĠĠĠĠĠĠ Ġprintln (" Read Ġdata : Ġ\" ${ out . data . toByteArray (). decode ToString ()} \" ") čĊĠĠĠĠĠĠĠ Ġout . close () čĊĠĠĠ Ġ} Ġfinally Ġ{ čĊĠĠĠĠĠĠĠ Ġbuffer Pool . close () čĊĠĠĠĠĠĠĠ Ġfile . delete () čĊĠĠĠ Ġ} čĊč Ċ } čĊč Ċ /** čĊ Ġ* ĠExample : Ġusing Ġapp ender Ġand Ġreader čĊ Ġ*/ č Ċ fun Ġusing Appender And Reader () Ġ{ čĊĠĠĠ Ġval Ġbuffer Pool Ġ= ĠByteBuffer Pool ( 1 0 ) čĊĠĠĠ Ġval Ġfile Ġ= ĠFile (" Simple ĠFile ") čĊĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġ" Simple ĠText " čĊĠĠĠĠĠĠĠ Ġfile . open Write (). buffered Writer ( buffer Pool ). use Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . append ( text ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . flush () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġprintln (" Write Ġdata : Ġ\"$ text \" ") čĊčĊĠĠĠĠĠĠĠ Ġval Ġread Ġ= Ġfile . open Read (). buffered Reader ( buffer Pool ). use Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . read Text () čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġprintln (" Read Ġdata : Ġ\" ${ read }\" ") čĊĠĠĠ Ġ} Ġfinally Ġ{ čĊĠĠĠĠĠĠĠ Ġbuffer Pool . close () čĊĠĠĠĠĠĠĠ Ġfile . delete () čĊĠĠĠ Ġ} č Ċ } čĊč Ċ /** čĊ Ġ* ĠExample : Ġread Ġusing Ġbyte Ġbuffer čĊ Ġ*/ č Ċ fun Ġusing ByteBuffer () Ġ{ čĊĠĠĠ Ġval Ġbuffer Pool Ġ= ĠByteBuffer Pool ( 1 0 ) čĊĠĠĠ Ġval Ġfile Ġ= ĠFile (" Simple ĠFile ") čĊĠĠĠ Ġval Ġtext Ġ= Ġ" Simple ĠText " čĊĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠ Ġtext . to ByteBuffer UTF 8 (). use Ġ{ Ġdata Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . open Write (). use Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . write ( data ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġprintln (" Write Ġdata : Ġ\"$ text \" ") čĊĠĠĠĠĠĠĠ ĠByteBuffer . alloc ( 5 1 2 ). use Ġ{ Ġread Buf Ġ-> čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġread Ġ= Ġfile . open Read (). use Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . read ( read Buf ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġread Buf . flip () čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Read Ġdata : Ġ\" ${ read Buf . toByteArray (). decode ToString ()} \" ") čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} Ġfinally Ġ{ čĊĠĠĠĠĠĠĠ Ġbuffer Pool . close () čĊĠĠĠĠĠĠĠ Ġfile . delete () čĊĠĠĠ Ġ} č Ċ } čĊč Ċ /** čĊ Ġ* ĠExample : Ġcalc Ġmd 5 čĊ Ġ*/ č Ċ fun Ġcalc Md 5 () Ġ{ čĊĠĠĠ Ġval Ġfile Ġ= ĠFile (" Simple ĠFile ") čĊĠĠĠ Ġval Ġtext Ġ= Ġ" Simple ĠText " čĊĠĠĠ Ġval Ġmd 5 Ġ= ĠMD 5 Message Digest () čĊĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠ Ġtext . to ByteBuffer UTF 8 (). use Ġ{ Ġdata Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . open Write (). use Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . write ( data ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ ĠByteBuffer . alloc ( 5 1 2 ). use Ġ{ Ġread Buf Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . open Read (). use Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Buf . clear () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . read ( read Buf ) Ġ<= Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Buf . flip () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmd 5 . update ( read Buf ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġval Ġhash Ġ= Ġmd 5 . finish () // result Ġmd 5 Ġhash čĊĠĠĠĠĠĠĠ Ġval Ġhash String Ġ= Ġhash . map Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġint Ġ= Ġit . toInt () Ġand Ġ 0 xFF čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( int Ġ ush r Ġ 4 ). toString ( 1 6 ) Ġ+ Ġ( int Ġand Ġ 0 xF ). toString ( 1 6 ) čĊĠĠĠĠĠĠĠ Ġ}. join ToString ("") čĊčĊĠĠĠĠĠĠĠ Ġprintln (" Hash : Ġ$ hash String ") čĊĠĠĠ Ġ} Ġfinally Ġ{ čĊĠĠĠĠĠĠĠ Ġfile . delete () čĊĠĠĠ Ġ} č Ċ } čĊč Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ čĊĠĠĠ Ġusing ByteArray () čĊĠĠĠ Ġusing Appender And Reader () čĊĠĠĠ Ġusing ByteBuffer () čĊĠĠĠ Ġcalc Md 5 () č Ċ }