File Handling in Scala

File Handling is a way to store the fetched information in a file. Scala provides packages from which we can create, open, read and write the files. For writing to a file in scala we borrow java.io._ from Java because we don’t have a class to write into a file, in the Scala standard library. We could also import java.io.File and java.io.PrintWriter.

Creating a new file :

  1. java.io.File defines classes and interfaces for the JVM access files, file systems and attributes.
  2. File(String pathname) converts theparameter string to abstract path name, creating a new file instance.

Writing to the file



  1. java.io.PrintWriter includes all the printing methods included in PrintStream.

Below is the implementation for creating a new file and writing into it.

filter_none

edit
close

play_arrow

link
brightness_4
code

// File handling program
import java.io.File
import java.io.PrintWriter
  
// Creating object
object Geeks
{
    // Main method
    def main(args:Array[String])
    {
        // Creating a file 
        val file_Object = new File("abc.txt"
   
        // Passing reference of file to the printwriter     
        val print_Writer = new PrintWriter(file_Object) 
  
        // Writing to the file       
        print_Writer.write("Hello, This is Geeks For Geeks"
  
        // Closing printwriter    
        print_Writer.close()       
}
}     

chevron_right



A text file abc.txt is created and contains the string “Hello, This is Geeks For Geeks”

Scala does not provide class to write a file but it provide a class to read the files. This is the class Source. We use its companion object to read files. To read the contents of this file, we call the fromFile() method of class Source for reading the contents of the file which includes filename as argument.

Reading a File
scala.io.Source includes methods for iterable representation of the source file.
Source.fromFile creates a source from the input file.
file.next return the next element in the iteration and moves the iterator one step ahead.
file.hasnext checks if there is next element available to iterate.
getLines– Iterate through file line by line

Below is the implementation for Reading each character from a file.

filter_none

edit
close

play_arrow

link
brightness_4
code

// Scala File handling program
import scala.io.Source
  
// Creating object 
object GeeksScala
{
    // Main method
    def main(args : Array[String])
    {
        // file name
        val fname = "abc.txt" 
  
        // creates iterable representation 
        // of the source file            
        val fSource = Source.fromFile(fname) 
        while (fSource.hasNext)
        {
            println(fSource.next)
        }
  
        // closing file
        fSource.close() 
    }
}

chevron_right


Output:

We can use getLines() method to read individual lines instead of the whole file at once.
Below is the implementation for Reading each line from a file.

filter_none

edit
close

play_arrow

link
brightness_4
code

// Scala file handling program to Read each
// line from a single file
import scala.io.Source 
  
// Creating object
object gfgScala
    // Main method
    def main(args:Array[String])
    
        val fname = "abc.txt"
        val fSource = Source.fromFile(fname) 
        for(line<-fSource.getLines)
        
            println(line) 
        
        fSource.close() 
    

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 :

Be the First to upvote.


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