"""
Reading files in Cobra relies on the libraries and therefore is pretty the much
the same as C# or VB.
See the BCL (Base Class Library) docs for File, StreamReader, StreamWriter,
TextReader and TextWriter for more.
"""
class Test
def main is shared
nl = Environment.newLine
fileName = 'test-file.text'
# write a whole file
File.writeAllText(fileName, 'This is a test file.[nl]To make sure there is a file to work with.[nl]')
# read a whole file
contents = File.readAllText(fileName)
assert 'test' in contents # The `in` operator works for strings: <substring> in <string> ==> bool
# read line by line
num = 1
using sr = File.openText(fileName)
while true
line = sr.readLine
if line is nil
break
print '[num]. len=[line.length] "[line.trim]"'
num += 1
# be nice about IO errors
fileName = 'bad-file-name.text'
try
contents = File.readAllText(fileName)
catch ioe as IOException
print 'I/O Error: [ioe.message]'
success
assert 'test' in contents |