Scala:Scala 2.11中写入文件/jar的规范方式
我有以下方法(实际上是一个函数) 我在看了其他问题和博客后写了这篇文章,但仍有以下问题: 是否应该设置试接块 是否可以使用Scala.io类代替java.io.fileinputstream 缓冲区写入方法比使用java.nio.channels.FileChannel、Apache Commons IO FileUtils.copyFile或java 7的Files.copy更快,这是否正确Scala:Scala 2.11中写入文件/jar的规范方式,scala,jar,io,Scala,Jar,Io,我有以下方法(实际上是一个函数) 我在看了其他问题和博客后写了这篇文章,但仍有以下问题: 是否应该设置试接块 是否可以使用Scala.io类代替java.io.fileinputstream 缓冲区写入方法比使用java.nio.channels.FileChannel、Apache Commons IO FileUtils.copyFile或java 7的Files.copy更快,这是否正确 对于一个大项目,在C++中编写整个JAR创建实用程序并只调用它一次,可以获得显著的性能吗? 注意:在编
对于一个大项目,在C++中编写整个JAR创建实用程序并只调用它一次,可以获得显著的性能吗? 注意:在编写Scala 2.11的最后一个开发里程碑时,M6尚未发布。然而,我的理解是,它不会添加Scala.io
def addToJar(jarOut: JarOutputStream, file: File, reldir: String): Unit =
{
val fName = reldir + file.getName
val fNameMod = if (file.isDirectory) fName + "/" else fName
val entry = new JarEntry(fNameMod)
entry.setTime(file.lastModified)
jarOut.putNextEntry(entry)
if (file.isDirectory)
{
jarOut.closeEntry
file.listFiles.foreach(i => addToJar(jarOut, i, fName + "/"))
}
else
{
var buf = new Array[Byte](1024)
val in = new FileInputStream(file)
Stream.continually(in.read(buf)).takeWhile(_ != -1).foreach(jarOut.write(buf, 0, _))
in.close
jarOut.closeEntry()
}
}