0

私は、scalax.io._ のファイルへの書き込み操作のデフォルトの方法が「追加」であることを発見しました。しかし、システム IO open(..,WRITE) call のようなデータを上書きするために Resource.fromFile オブジェクトを操作する最善かつ最短の方法は何ですか? 私が持っているアイデアは、ファイルを削除するか、シーク/パッチ 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

truncatefromを使用して、ファイルの長さをゼロに切り詰めます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 に答える