Scala 什么是「;资源“;SBT项目中的文件夹用于?

Scala 什么是「;资源“;SBT项目中的文件夹用于?,scala,sbt,Scala,Sbt,在SBT项目文件夹层次结构中,我将把Scala源代码放在src/main/Scala中,把测试放在src/tests/Scala中。我打算在src/main/resources和src/tests/resources中放入什么?该目录中的所有内容都打包到调用包时创建的.jar中 这意味着您可以将其用于图像、声音文件、文本以及任何非代码但代码使用的内容。以下是将资源中存储的文本文件复制到本地文件系统的示例: def copyFileFromResource(source: String, de

在SBT项目文件夹层次结构中,我将把Scala源代码放在src/main/Scala中,把测试放在src/tests/Scala中。我打算在src/main/resources和src/tests/resources中放入什么?

该目录中的所有内容都打包到调用
包时创建的.jar中


这意味着您可以将其用于图像、声音文件、文本以及任何非代码但代码使用的内容。

以下是将资源中存储的文本文件复制到本地文件系统的示例:

  def copyFileFromResource(source: String, dest: File) {
    val in = getClass.getResourceAsStream(source)
    val reader = new java.io.BufferedReader(new java.io.InputStreamReader(in))
    val out = new java.io.PrintWriter(new java.io.FileWriter(dest))
    var line: Option[String] = None
    line = Option[String](reader.readLine)
    while (line != None) {
      line foreach { out.println }
      line = Option[String](reader.readLine)
    }
    in.close
    out.flush
  }

谢谢你,迪伦。你能链接到一个Scala(2.8)代码的例子吗?这个重复的问题有一个简明的例子:我在这里把什么作为“源”参数?src/main/resources中文件的简短名称?我想打印一个简短的内置帮助文件,以防调用我的程序时没有参数。所以,我复制了您的函数体,删除了dest/out以使用println打印到stdout,并使用“help.txt”作为源代码。这在java.io.Reader中给了我一个NullPointerException..看,我认为可以使用
Reader=io.Source.fromInputStream(in.getLines(),
out=new PrintWriter(dest))
来缩短它,然后您所需要的就是
Reader foreach out.println
可能的重复