File reading/writing is similar to other languages where you first open
the file, specify the modality (r
read, w
write or a
append) and bind the file to an object, and finally operate on this object and close()
it when you are done.
A better alternative is however to encapsulate the file operations in a do
block that closes the file automatically when the block ends:
Write:
open("afile.txt", "w") do f # "w" for writing
write(f, "test\n") # \n for newline
end
Read the whole file in a single operation:
open("afile.txt", "r") do f # "r" for reading
filecontent = read(f,String) # attention that it can be used only once. The second time, without reopening the file, read() would return an empty string
print(filecontent)
end
or, reading line by line:
open("afile.txt", "r") do f
for ln in eachline(f)
println(ln)
end
end
or, if you want to keep track of the line numbers:
open("afile.txt", "r") do f
for (i,ln) in enumerate(eachline(f))
println("$i $ln")
end
end
Some packages that deals with IO are:
Some basic examples that use them are available in the DataFrame section.
While an updated, expanded and revised version of this chapter is available in "Chapter 5 - Input/Output" of Antonello Lobianco (2019), "Julia Quick Syntax Reference", Apress, this tutorial remains in active development.