package Ġcom . so y wiz . k orge . service . storage Ċ Ċ import Ġcom . so y wiz . k orge . view .* Ċ import Ġjava . io .* Ċ import Ġjava . util .* Ċ Ċ actual Ġclass ĠNative Storage Ġactual Ġconstructor ( val Ġviews : ĠViews ) Ġ: ĠI Storage Ġ{ Ċ ĉ val Ġprops Ġ= ĠProperties () ĊĠĠĠ Ġval Ġfile Ġ= ĠFile (" game . storage ") ĊĊ ĉ init Ġ{ Ċĉ ĉ load () Ċ ĉ } ĊĊ ĉ private Ġfun Ġload () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! file . exists ()) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFileInputStream ( file ). use Ġ{ Ġfis Ġ-> Ġprops . load ( fis ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ ĉ private Ġfun Ġsave () Ġ{ Ċĉ ĉ try Ġ{ Ċĉĉ ĉ File OutputStream ( file ). use Ġ{ Ġfout Ġ-> Ġprops . store ( f out , Ġ"") Ġ} Ċĉ ĉ } Ġcatch Ġ( e : ĠIOException ) Ġ{ Ċĉĉ ĉ e . printStackTrace () Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ actual Ġoverride Ġfun Ġset ( key : ĠString , Ġvalue : ĠString ) Ġ{ Ċĉ ĉ props [ key ] Ġ= Ġvalue Ċĉ ĉ save () Ċ ĉ } ĊĊ ĉ actual Ġoverride Ġfun Ġget OrNull ( key : ĠString ): ĠString ? Ġ{ Ċĉ ĉ return Ġprops [ key ]?. toString () Ċ ĉ } ĊĊ ĉ actual Ġoverride Ġfun Ġremove ( key : ĠString ) Ġ{ Ċĉ ĉ props . remove ( key ) Ċĉ ĉ save () Ċ ĉ } ĊĊ ĉ actual Ġoverride Ġfun Ġremove All () Ġ{ Ċĉ ĉ props . clear () Ċĉ ĉ save () Ċ ĉ } Ċ } Ċ