在Scala中将整个文件读入内存的简单和规范方法是什么?(理想情况下,控制字符编码.)
我能想到的最好的是:
scala.io.Source.fromPath("file.txt").getLines.reduceLeft(_+_)
Run Code Online (Sandbox Code Playgroud)
或者我应该使用Java的一个令人难以置信的习语,其中最好的(不使用外部库)似乎是:
import java.util.Scanner
import java.io.File
new Scanner(new File("file.txt")).useDelimiter("\\Z").next()
Run Code Online (Sandbox Code Playgroud)
从阅读邮件列表讨论来看,我不清楚scala.io.Source甚至应该是规范的I/O库.我完全不明白它的目的是什么.
...我想要一些简单易记的东西.例如,在这些语言中,很难忘记这些成语......
Ruby open("file.txt").read
Ruby File.read("file.txt")
Python open("file.txt").read()
Run Code Online (Sandbox Code Playgroud) 我想写一个类似于以下的方法
def appendFile(fileName: String, line: String) = {
}
Run Code Online (Sandbox Code Playgroud)
但我不确定如何充实实施.这里的另一个问题暗示了Scala 2.9功能,但我找不到更多细节.
我有一个关于诡计的问题
new PrintWriter("/tmp/some.file") { write("file contents"); close }
Run Code Online (Sandbox Code Playgroud)
我从这篇有趣的帖子中学到了:Scala:在一个语句中将字符串写入文件
这项技术效果很好(对于测试代码),但是我对Scala中语法上发生的事情感到有些困惑.
PrintWriter是一个java类......但它看起来像是一个代码块被传递给print writer实例,并且隐式地在该实例上执行方法调用.PrintWriter java类定义没有带有功能块的apply()方法.
那么..我很困惑签证vi Scala的语法
谢谢 !
我不能使用scalax,因为它处于sbt 0.7.7和sbt 0.11.2之间的状态,并且不会安装在windows上.(它缺少org.scala-tools.sbt#sbt_2.7.7; 0.4.7-p10,即使我已下载并更改脚本以匹配 - 新手远远超出他的深度).
没有scalax我在网上找不到任何例子.
我想要做的就是将一些文本行写入文件.但是我不希望一次将所有行都放在内存中.
有人能指出我的榜样吗?
Scala 2.9,Windows 7 - 64位.