Opening and Reading a File in Julia
Last Updated :
21 Nov, 2023
File handling in Julia is achieved using functions such as open(), read(), and close(). There are many ways to read the contents of a file like readline(), readlines() and just read().
- open(): To open a file existing in an absolute path, provided as the parameter.
- read(): Read the contents of the file into a single string.
- close(): Close the file object or the variable holding the instance of an opened file.
Opening a File:
Consider a file “text.txt” placed in the same working directory along with Julia’s implementation file.
test.txt
- one
- two
- three
- four
- five
- six
and Now we will use the open() function to open a file in readable mode
Syntax :
Julia
f = open( "absolute path of the file" , "r" )
# few file operations
close(f)
|
There are two methods to Open a file using the open() function:
Method 1:
Open a file using open() and assign it to a variable which is the instance of the opened file, then make use of that variable for further operations to be performed on the opened file. Then close the file using close().
Julia
f = open ( "test.txt" , "r" )
close(f)
|
Method 2:
Open a file in union with a ‘do’ control flow. The opened file will automatically be closed once the end of the do loop is attained. Perform the desired operations within the do control flow. This is the most common and handy way of opening and accessing a file.
Julia
open ( "test.txt" ) do f
end
|
Reading the contents of a file
Reading a File can be done in multiple ways with the use of pre-defined functions in Julia. Files can be read line by line, in the form of strings or the whole file at once.
Read the file contents line by line using readline() Function.
Suppose a file has n lines within. We can use the readline() function to read the contents of the file in a line-by-line manner(one line at a time) until the EOF (End of file) is attained.
Julia
open ( "test.txt" ) do f
line = 0
while ! eof(f)
s = readline(f)
line + = 1
println( "$line . $s" )
end
end
|
Output:
Reading the lines of a file into a String array using readlines()
readlines() method is used to read all the lines of the file into a String array. Where every element is a line of the file. Using this we can read multiple lines at once.
Julia
f = open ( "test.txt" , "r" )
line_count = 0
for lines in readlines(f)
global line_count + = 1
println(lines)
end
println( "line count is $line_count" )
close(f)
|
Output:
Read all contents of a file into a String at once using read()
The file contents are entirely read into a single string using the read() method.
Syntax:
s = read(f, String)
# f can be a file object or an absolute path
Julia
f = open ( "test.txt" , "r" )
s = read(f, String)
print (s)
close(f)
|
Output:
File Exception handling:
Till now we have assumed the case where our file exists in the specified path. What if a file doesn’t exist in the specified path?
Julia
f = open ( "dummy.txt" , "r" )
close(f)
|
Output:
Solution:
We will handle this using the Try-Catch block in Julia. Open the file in the try block using open(), if the file exists, then perform the desired operation. Otherwise, the try block will throw an exception and the control reaches the catch block. The user can be warned in the try block using a println() message or @warn.
Julia
try
open ( "dummy.txt" , "r" ) do s
end
catch
println( "file doesn't exist" )
end
|
Output:
Share your thoughts in the comments
Please Login to comment...