如何附加到Scala中的文件?

del*_*ber 21 scala

我想写一个类似于以下的方法

def appendFile(fileName: String, line: String) = {
}
Run Code Online (Sandbox Code Playgroud)

但我不确定如何充实实施.这里的另一个问题暗示了Scala 2.9功能,但我找不到更多细节.

oxb*_*kes 39

目前还没有特定于scala的IO实现,虽然我理解Jesse Eichar写的一个正在孵化.我不确定,它在多大程度上利用了JDK7中的新文件(路径)API.因此,现在我将使用简单的Java:

val fw = new FileWriter("test.txt", true)
try {
  fw.write( /* your stuff */)
}
finally fw.close() 
Run Code Online (Sandbox Code Playgroud)


Jav*_*deh 14

问题是陈旧的,答案也是如此.我觉得这样容易:

scala.tools.nsc.io.File("filename").writeAll("hello world")
Run Code Online (Sandbox Code Playgroud)

要么

scala.tools.nsc.io.File("filename").appendAll("hello world")
Run Code Online (Sandbox Code Playgroud)

要么

scala.tools.nsc.io.Path("/path/to/file").createFile().appendAll("hello world")
Run Code Online (Sandbox Code Playgroud)

当然为了更简洁,您可以导入scala.tools.nsc.io包并避免在代码中重复它.使用此软件包的一个优点是您不必添加任何外部依赖项/库(例如,与scala.io.file(Scalax)或Apache Commons 不同).

致谢:Garett Hall,看到这个.

  • 这不是公开的 API,可以随时删除,因此如果有一天您的代码出错,请不要感到惊讶。 (2认同)

Sha*_*nak 7

val fw = new FileWriter("test.txt", true) ; 
fw.write("This line appended to file!") ; 
fw.close()
Run Code Online (Sandbox Code Playgroud)