我发现scalax.io._中文件写入操作的默认方式是“追加”。 但是,使用Resource.fromFile对象进行操作的最佳和最短方式是什么,用于过度编写数据,如系统IO打开(..,WRITE)调用?我的想法是删除文件或使用搜索/修补API。但是他们要为这种简单的操作而烦恼。
scala> def mk(s:String) = { val out: Output = Resource.fromFile("/tmp/data");out.write(s)}
mk: (s: String)Unit
scala> mk("XXXX")
scala> mk("XXXX")
bash# > ls -l /tmp/data
-rw-rw-r-- 1 root root 8 Jun 1 16:27 /tmp/data
答案 0 :(得分:4)
使用truncate
中的scalax.io.Seekable
val output = Resource.fromFile("/tmp/data")
output truncate 0
output write "Bigger on the Inside"
答案 1 :(得分:2)
使用普通的旧输出流:
import scalax.io.Resource
import scalax.io._
val out:Output = Resource.fromOutputStream(new java.io.FileOutputStream("/tmp/testFile"))
out write "howdy"
out write "bah"
小心,因为每次写入都会重写文件。 请参阅daily scala如何克服这个问题,以及更多示例