package Ġcom . example . layout _ pro jet Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġorg . json . JSONObject Ċ import Ġjava . io .* Ċ Ċ // cl asse ĠrÃ© alis Ã©e ĠÃł Ġl ' aide Ġde Ġla Ġpage Ġweb : Ċ // http :// blog . q an bio . com / tech / 2 0 1 7 / 0 7 / 1 8 / st ocker - les - don nees - en - local - p our - une - application - android . html Ċ Ċ class ĠLocal Data Ġ{ ĊĠĠĠ Ġfun Ġsave Data ( test : ĠActivity , ĠjsonObject : ĠJSONObject ){ ĊĊĠĠĠĠĠĠĠ Ġval Ġstring Ġ= ĠjsonObject . toString () ĊĊĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġ" Preferences " ĊĠĠĠĠĠĠĠ Ġval Ġfile OutputStream : ĠFileOutputStream ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile OutputStream Ġ= Ġtest . open File Output ( fileName , ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile OutputStream . write ( string . toByteArray ()) ĊĠĠĠĠĠĠĠ Ġ} catch Ġ( e : ĠException ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġread Data ( test : ĠActivity ): ĠJSONObject Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile InputStream : ĠFileInputStream ? Ġ= Ġtest . open File Input (" Preferences ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput StreamReader Ġ= ĠInputStreamReader ( file InputStream ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuffered Reader Ġ= ĠBufferedReader ( input StreamReader ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠstringBuilder : ĠStringBuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtext : ĠString ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġbuffered Reader . readLine () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder . append ( text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠJSONObject ( string Builder . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠFileNotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject . put (" Pseudo ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠjsonObject ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }