0

我发现在 scalax.io._ 中对文件进行写操作的默认方式是“追加”。但是,使用 Resource.fromFile 对象覆盖系统 IO open(..,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
4

2 回答 2

4

truncate使用from将文件截断为零长度scalax.io.Seekable

  val output = Resource.fromFile("/tmp/data")

  output truncate 0
  output write "Bigger on the Inside"
于 2015-04-02T20:21:01.390 回答
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"

请小心,因为文件将在每次写入时被重写。查看每日 scala如何克服这个问题,以及更多示例

于 2013-06-01T19:59:38.210 回答