/* Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 1 7 ĠDen is ĠSh ury gin . ĠAll Ġrights Ġreserved . Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ċ Ġ*/ Ċ Ċ package Ġru . po cket byte . lo col aser . resource . file Ċ Ċ import Ġjava . io . File Ċ import Ġjava . io . File OutputStream Ċ import Ġjava . io . IOException Ċ import Ġjava . io . OutputStream Ċ Ċ /** Ċ Ġ* ĠExtension Ġof Ġthe ĠResource File Ġthat Ġallow Ġwriting Ġstrings Ġinto Ġresource Ġfile Ġthrough Ġopen ĠOutputStream . Ċ Ġ* ĠBefore Ġwriting Ġthe Ġstream Ġshould Ġbe Ġopen Ġvia Ġopen (). ĠWhen Ġwriting Ġis Ġcompleted Ġthe Ġstream Ġshould Ġbe Ġclosed Ġvia Ġclose (). Ċ Ġ* Ċ Ġ* Ġ@ author ĠDen is ĠSh ury gin Ċ Ġ*/ Ċ abstract Ġclass ĠResource Stream File ( file : ĠFile ) Ġ: ĠResource File Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFile Ġof Ġthe Ġresource . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġfile : ĠFile ĊĊĠĠĠ Ġprivate Ġvar Ġstream : ĠOutputStream ? Ġ= Ġnull ĊĊĠĠĠ Ġval ĠisOpen : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġstream Ġ!= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . file Ġ= ĠFile ( file . canonical Path ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOpen Ġstream Ġfor Ġwriting . ĊĠĠĠĠ Ġ* Ġ@ throws ĠIOException ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġopen () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( stream Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . parent File . mkdir s () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstream Ġ= ĠFileOutputStream ( file ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠClose Ġstream . ĊĠĠĠĠ Ġ* Ġ@ throws ĠIOException ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( stream Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstream !!. flush () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstream !!. close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstream Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWrite Ġstring Ġinto Ġstream . ĊĠĠĠĠ Ġ* Ġ@ param Ġstring ĠString Ġfor Ġwriting . ĊĠĠĠĠ Ġ* Ġ@ throws ĠIOException ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġwrite String ( string : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( stream Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" You Ġshould Ġopen Ġfile Ġbefore Ġwrite ") ĊĊĠĠĠĠĠĠĠ Ġstream !!. write ( string . toByteArray ( charset (" UTF - 8 "))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġwrite String Ln ( string : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite String ( string ) ĊĠĠĠĠĠĠĠ Ġwrit eln () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWrite Ġnew Ġline Ġsymbol Ġinto Ġstream . ĊĠĠĠĠ Ġ* Ġ@ throws ĠIOException ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġwrit eln () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( stream Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" You Ġshould Ġopen Ġfile Ġbefore Ġwrite ") ĊĊĠĠĠĠĠĠĠ Ġstream !!. write ( 0 x 0 D ) ĊĠĠĠĠĠĠĠ Ġstream !!. write ( 0 x 0 A ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ