对于阅读,有一个有用的抽象Source
。如何将行写入文本文件?
发布于 2011-01-06 02:56:25
这是标准Scala中缺少的特性之一,我发现它非常有用,所以我将其添加到了我的个人库中。(您可能也应该有一个个人库。)代码是这样的:
def printToFile(f: java.io.File)(op: java.io.PrintWriter => Unit) {
val p = new java.io.PrintWriter(f)
try { op(p) } finally { p.close() }
}
它的用法如下:
import java.io._
val data = Array("Five","strings","in","a","file!")
printToFile(new File("example.txt")) { p =>
data.foreach(p.println)
}
发布于 2011-03-07 18:05:46
与Rex Kerr的答案类似,但更通用。首先,我使用一个helper函数:
/**
* Used for reading/writing to database, files, etc.
* Code From the book "Beginning Scala"
* http://www.amazon.com/Beginning-Scala-David-Pollak/dp/1430219890
*/
def using[A <: {def close(): Unit}, B](param: A)(f: A => B): B =
try { f(param) } finally { param.close() }
然后,我将其用作:
def writeToFile(fileName:String, data:String) =
using (new FileWriter(fileName)) {
fileWriter => fileWriter.write(data)
}
和
def appendToFile(fileName:String, textData:String) =
using (new FileWriter(fileName, true)){
fileWriter => using (new PrintWriter(fileWriter)) {
printWriter => printWriter.println(textData)
}
}
等。
发布于 2013-02-12 03:38:20
一个简单的答案:
import java.io.File
import java.io.PrintWriter
def writeToFile(p: String, s: String): Unit = {
val pw = new PrintWriter(new File(p))
try pw.write(s) finally pw.close()
}
https://stackoverflow.com/questions/4604237
复制相似问题