scalax.io._覆盖文件中数据的最佳方法

时间:2013-06-01 14:37:55

标签: scala file-io

我发现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

2 个答案:

答案 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如何克服这个问题,以及更多示例