如何在scala中将资源文件读入字节数组?

如何在scala中将资源文件读入字节数组?,scala,Scala,我只想读取资源中的文件并获得一个字节数组?有人能帮我吗?如中所述,下面的片段应该可以做到这一点: def slurp(resource: String) = { val bis = new BufferedInputStream(getClass.getResource(resource)) try Stream.continually(bis.read).takeWhile(-1 !=).map(_.toByte).toArray finally bis.close() } 注意

我只想读取资源中的文件并获得一个字节数组?有人能帮我吗?

如中所述,下面的片段应该可以做到这一点:

def slurp(resource: String) = {
  val bis = new BufferedInputStream(getClass.getResource(resource))
  try Stream.continually(bis.read).takeWhile(-1 !=).map(_.toByte).toArray
  finally bis.close()
}

注意:这需要Java 9+

我使用以下方法将资源中的文件读取为字节数组:

getClass.getResourceAsStream("/file-in-resource-folder").readAllBytes()

几乎是重复的(尝试读取行而不是字节,但可能您可以调整它,例如通过将其与相结合),这种方法非常缓慢,占用CPU,因为它逐字节读取文件,一次读取一个字节。