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:
- java.io.File define clases e interfaces para los archivos de acceso, sistemas de archivos y atributos de JVM.
- 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
- 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