【发布时间】:2020-11-01 08:16:49
【问题描述】:
我已经编写了从文件中读取一些数据的 Scala 程序。
lazy val vectorOptF2 = Source.fromFile("DataFiles/F2-xopt.txt").getLines().map(_.toDouble). toList
当我在 IntelliJ IDEA IDE 中执行我的代码时,它运行成功。但是当我创建 JAR 文件时
mvn clean packae
并试图执行 JAR 文件,它会抛出错误,说明找到了这样的文件。
Exception in thread "main" java.io.FileNotFoundException: DataFiles/F2-xopt.txt (No such file or directory)
我已创建 ZIP 文件 DataFiles.zip 并将其移动到 JAR 文件中
mv DataFiles.zip MyJar.jar
但同样是错误。 如何从 JAR 文件中文件夹中的文件中读取数据?
- 侧文件夹DataFiles中有多个文件,每次程序执行时都必须根据指定的条件读取其中一些文件。
【问题讨论】:
-
如果文件在JAR中,它不再是文件而是资源,你需要类似:
Source.fromInputStream(Thread.currentThread.getContextClassLoader.getResourceAsStream("foo/bar"))