我想写一个类似于以下的方法
def appendFile(fileName: String, line: String) = {
}
但我不确定如何充实实施。这里的另一个问题暗示了Scala 2.9功能,但我找不到更多细节。
答案 0 :(得分:36)
目前没有特定于scala的IO实现,虽然我理解one written by Jesse Eichar正在孵化中。我不确定,它在多大程度上利用了JDK7中的新文件(路径)API。因此,现在我将使用简单的Java:
val fw = new FileWriter("test.txt", true)
try {
fw.write( /* your stuff */)
}
finally fw.close()
答案 1 :(得分:12)
问题是陈旧的,答案也是如此。我觉得这样容易:
npm update
或
scala.tools.nsc.io.File("filename").writeAll("hello world")
或
scala.tools.nsc.io.File("filename").appendAll("hello world")
当然为了更简洁,您可以导入scala.tools.nsc.io.Path("/path/to/file").createFile().appendAll("hello world")
包并避免在代码中重复它。使用此包的一个优点是您不必添加任何外部依赖项/库(例如,与scala.io.file(scala.tools.nsc.io
)或Apache Commons不同)。
致谢:Garett Hall,见this。
答案 2 :(得分:7)
val fw = new FileWriter("test.txt", true) ;
fw.write("This line appended to file!") ;
fw.close()
答案 3 :(得分:0)
os-lib是Scala文件系统操作(例如附加到文件)的最佳选择。
以下是将“听到我的声音”添加到文件的方法:
os.write.append(os.pwd/"whatever"/"file1.txt", "\nhear me moo")
os-lib对于文件系统操作是the best option,因为它为所有常用功能提供了统一的API,并且还为路径提供了干净的API。用于文件系统的Java API要求您将精力浪费在底层细节上,并迫使您导入大量代码。
下面是一个完整的示例,该示例创建目录,创建文件,然后在您要在本地计算机上进行实验时追加到文件:
os.makeDir(os.pwd/"whatever")
os.write(os.pwd/"whatever"/"file1.txt", "hi there")
os.write.append(os.pwd/"whatever"/"file1.txt", "\nhear me moo")