Manejo de archivos en Scala

El manejo de archivos es una forma de almacenar la información obtenida en un archivo. Scala proporciona paquetes desde los que podemos crear, abrir, leer y escribir los archivos. Para escribir en un archivo en Scala, tomamos prestado java.io._ de Java porque no tenemos una clase para escribir en un archivo, en la biblioteca estándar de Scala. También podríamos importar java.io.File y java.io.PrintWriter.

Creando un nuevo archivo:

  1. java.io.File define clases e interfaces para los archivos de acceso, sistemas de archivos y atributos de JVM.
  2. File(String pathname) convierte la string de parámetros en un nombre de ruta abstracto, creando una nueva instancia de archivo.

Escribir en el archivo

  1. java.io.PrintWriter incluye todos los métodos de impresión incluidos en PrintStream.

A continuación se muestra la implementación para crear un nuevo archivo y escribir en él.

// 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()       
}
}     


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

Scala no proporciona una clase para escribir un archivo, pero proporciona una clase para leer los archivos. Esta es la fuente de la clase. Usamos su objeto complementario para leer archivos. Para leer el contenido de este archivo, llamamos al método fromFile() de la clase Source para leer el contenido del archivo que incluye el nombre del archivo como argumento.

Lectura de un archivo
scala.io.Source incluye métodos para la representación iterable del archivo fuente.
Source.fromFile crea una fuente a partir del archivo de entrada.
file.next devuelve el siguiente elemento en la iteración y mueve el iterador un paso adelante.
file.hasnext comprueba si hay un elemento siguiente disponible para iterar.
getLines : iterar a través del archivo línea por línea

A continuación se muestra la implementación para leer cada carácter de un archivo.

// 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() 
    }
}

Salida:

podemos usar el método getLines() para leer líneas individuales en lugar de todo el archivo a la vez.
A continuación se muestra la implementación para leer cada línea de un archivo.

// 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() 
    } 
} 

Producción:

Publicación traducida automáticamente

Artículo escrito por aakarsha_chugh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *