/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 2 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . ir . backend . js . ic Ċ Ċ import Ġorg . jetbrains . kotlin . protobuf . CodedInputStream Ċ import Ġorg . jetbrains . kotlin . protobuf . CodedOutputStream Ċ import Ġjava . io . File Ċ import Ġjava . io . FileInputStream Ċ import Ġjava . io . File OutputStream Ċ Ċ internal Ġinline Ġfun Ġ< T > ĠFile . if Exists ( f : ĠFile . () Ġ-> ĠT ): ĠT ? Ġ= Ġif Ġ( exists ()) Ġf () Ġelse Ġnull Ċ Ċ internal Ġfun ĠFile . re create () Ġ{ ĊĠĠĠ Ġif Ġ( exists ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelete () ĊĠĠĠ Ġ} ĊĠĠĠ Ġcreate New File () Ċ } Ċ Ċ internal Ġinline Ġfun ĠFile . use Coded Input IfExists ( f : ĠCode d InputStream . () Ġ-> ĠUnit ) Ġ= Ġif Exists Ġ{ ĊĠĠĠ ĠCode d InputStream . newInstance ( FileInputStream ( this )). f () Ċ } Ċ Ċ internal Ġinline Ġfun ĠFile . use Coded Output ( f : ĠCode d OutputStream . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġparent File ?. mkdir s () ĊĠĠĠ Ġrecreate () ĊĠĠĠ ĠFileOutputStream ( this ). use Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġout Ġ= ĠCode d OutputStream . newInstance ( it ) ĊĠĠĠĠĠĠĠ Ġout . f () ĊĠĠĠĠĠĠĠ Ġout . flush () ĊĠĠĠ Ġ} Ċ } Ċ