180 votes

Scala écrire la chaîne dans fichier dans une instruction

Donc, il n'y a

// to read a whole file
Source.fromFile("file.txt").mkString

Est-t-il un équivalent pour écrire une chaîne de caractères dans un fichier. un concis ?

La plupart des langues de soutien, quelque chose comme ça. Mon préféré est groovy

//Groovy
def f = new File("file.txt")
//to read
def s = f.text
//to write
f.text = "file contents"

Le cas d'utilisation étant une ligne à une petite page de code. D'avoir à transporter votre propre bibliothèque dosent de bon sens ici. Je m'attends à une langue moderne de me laisser écrire quelque chose à un fichier facilement.

Il y a des postes similaires à ce. mais, ils ne pas répondre à ma question exacte ou axée sur les anciens scala versions. ce Lire l'intégralité du fichier en Scala? et ce Comment écrire dans un fichier en scala?

208voto

Vladimir Matveev Points 16593

Il est étrange que personne n’avait suggéré NIO.2 opérations (disponibles depuis Java 7) :

Je pense que c’est de loin la plus simple et la plus facile et plus idiomatique moyen, et il n’a pas toutes les dépendances sans Java lui-même.

89voto

Garrett Hall Points 11902

Voici un One-liner concis à l’aide de la bibliothèque de compilateur Scala :

Sinon, si vous souhaitez utiliser les bibliothèques Java, vous pouvez faire ce hack :

42voto

paradigmatic Points 20871

Si vous aimez la syntaxe Groovy, vous pouvez utiliser le modèle de conception de Pimp-My-bibliothèque de le pour amener à la Scala :

Il ne fonctionne pas comme prévu :

23voto

xiefei Points 2979
import sys.process._
"echo hello world" #> new java.io.File("/tmp/example.txt") !

12voto

RyuuGan Points 458

Vous pouvez facilement utiliser Apache fichier Utils. Regardez la fonction `` . Nous utilisons cette bibliothèque dans nos projets.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X