samlerepo/2019/Julia/Code/13.fileIO.jl

40 lines
1.3 KiB
Julia

# File IO is really similar to how it would be done in python and C.
io = open("test.txt", "w") # Opens test.txt for writing
write(io, "Hello World!") # writes a string to it
close(io) # closes the file
# However the more appropriate way to do it would be more similar to
# Python's "with" statement. This encloses the file handling in a code block
# and automatically closes the filestream and does cleanup if anything goes
# wrong.
open("test.txt", "w") do io
write(io, "Hello\nWorld!")
end
# The do-syntax here is really just syntactical sugar for giving the
# open() function a function as an argument
# The following syntax is effectively what the do-syntax above does.
# Create a function taking in a single argument with the file-handling code
function f(io)
write(io, "Hello\nWorld!")
end
# call the open function with this function as the first parameter
open(f, "test.txt", "w")
# This makes for some really clean and safe file handling syntax.
s = open("test.txt", "r") do io
collect(eachline(io))
end
display(s)
# for simple functions as the one above it is possible to just pass
# the the function directly in without using the do-syntax
# for a really compact one line function call
# The ∘ symbol is function composition (from mathematics)
s = open(collect eachline, "test.txt", "r")
display(s)