package Ġio . github . un red undant . satisf aket ion . generators . common Ċ Ċ import Ġco . touch lab . ker mit . Logger Ċ import Ġok io . FileSystem Ċ import Ġok io . Path Ċ import Ġok io . buffer Ċ Ċ actual Ġobject ĠReader Ġ{ ĊĠ Ġprivate Ġval Ġlogger Ġ= ĠLogger . with Tag (" Jvm FileReader ") ĊĠ Ġactual Ġfun Ġread ( path : ĠPath ): ĠString Ġ{ ĊĠĠĠ Ġval Ġcanonical Path Ġ= ĠFileSystem . SYSTEM . canonical ize ( path ) ĊĠĠĠ Ġlogger . i Ġ{ Ġ" Reading ĠFile : Ġ$ canonical Path " Ġ} ĊĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder () ĊĠĠĠ ĠFileSystem . SYSTEM . source ( path ). use Ġ{ Ġfs Ġ-> ĊĠĠĠĠĠ Ġfs . buffer (). use Ġ{ Ġb fs Ġ-> ĊĠĠĠĠĠĠĠ Ġvar Ġcurr Line Ġ= Ġb fs . read Utf 8 Line () ĊĠĠĠĠĠĠĠ Ġwhile Ġ( curr Line Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbuilder . append Line ( curr Line ) ĊĠĠĠĠĠĠĠĠĠ Ġcurr Line Ġ= Ġb fs . read Utf 8 Line () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġbuilder . toString (). trim () ĊĠ Ġ} Ċ } Ċ