Opening and Reading a File in Julia

File handling in Julia is achieved using functions such as open(), read(), 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

Now we will use open() function to open a file in readable mode
Syntax :

f = open("absolute path of the file", "r")

# few file operations 
close(f)

There are two methods to Open a file using 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().

filter_none

edit
close

play_arrow

link
brightness_4
code

# Opening a file in read_mode, method 1
# r is the default mode
  
f = open("test.txt", "r")
  
# do some file operations
  
# close the file instance
close(f)

chevron_right


Method 2

Open a file in union with a ‘do’ control flow. The opened file will automatically be closed once the end of 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.

filter_none

edit
close

play_arrow

link
brightness_4
code

# opening a file in read_mode, method 2
open("test.txt") do f
  
    # do stuff with the open file instance 'f'
  
end
  
# opened file is automatically closed after the do control ends.

chevron_right


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.

filter_none

edit
close

play_arrow

link
brightness_4
code

# read file contents, one line at a time 
  
open("test.txt") do f
  
  # line_number
  line = 0   
  
  # read till end of file
  while ! eof(f)  
  
     # read a new / next line for every iteration           
     s = readline(f)          
     line += 1
     println("$line . $s")
  end
  
end

chevron_right


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.

filter_none

edit
close

play_arrow

link
brightness_4
code

# opening a file in read_mode
# r is the default mode
  
f = open("test.txt", "r")
  
# to count total lines in the file
line_count = 0              
  
for lines in readlines(f)
  
    # increment line_count
    global line_count += 1  
  
    # print the line
    println(lines)        
  
end
  
# total lines in file
println("line count is $line_count")
  
close(f)

chevron_right


Output:



Read all contents of a file into a Strring 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
filter_none

edit
close

play_arrow

link
brightness_4
code

# opening a file in read_mode
  
f = open("test.txt", "r")
  
# read entire file into a string
s = read(f, String)       
  
print(s)
close(f)

chevron_right


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?

filter_none

edit
close

play_arrow

link
brightness_4
code

# opening a file in read_mode
  
# dummy.txt doesn't exist 
# in the working directory
f = open("dummy.txt", "r")         
close(f)

chevron_right


Output:

Solution:

We will handle this using the Try-Catch block in Julia.Open the file in try block using open(), if the file exists, then perform the desired operation. Else 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.

filter_none

edit
close

play_arrow

link
brightness_4
code

# since the presence of file is uncertain we'll use try catch
try  
    open("dummy.txt", "r") do s
        # perform desired operations if file exists
    end
catch
    # either warn or print that the file doesn't exist
    println("file doesn't exist")
end

chevron_right


Output:




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :

2


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.