我有这样一个目录:
assigment
|
|__ src
| |
| |__ Main.scala
|
|
|__ testcase
|
|__ Simple.in在Main.scala中,Simple.in是由Source.fromFile()读取的。
val inputFile = "Simple.in"
val lines = Source.fromFile("./testcase/" + inputFile).getLines但是,当我在Main.scala in sbt运行时,会出现FileNoutFoundException。当我将路径更改为"../testcase/" + inputFile时,它就可以正常工作。原来的道路是从我的老师,所以我想知道哪条路实际上是正确的?哦,我用的是Linux。
发布于 2016-09-13 15:11:44
./意思:当前路径
../意思是:当前目录“上面”的目录
因此:当从"src“、"./ testcase”运行Scala类时,它会查找“src”中的目录;或者使用完整路径名称:
“赋值/src/”+ "./testcase“转化为”testcase/src/testcase“。
然而,当你使用
“赋值/src/”+ "../testcase“转化为"assignment/testcase”。
因此,带有"..“的版本找到有效路径。这就是所有的魔法!
发布于 2016-09-13 15:15:41
. =>电流dir
.. => one高于curren dir
但是访问资源的标准方法是使用sbt项目结构的resources文件夹。
这种方式可以帮助您访问文件,而不依赖于您正在访问代码中的资源的位置(哪个类)。
文件夹来放置文件
src/main/resources
val stream : InputStream = getClass.getResourceAsStream("/readme.txt")
val lines = scala.io.Source.fromInputStream( stream ).getLineshttps://stackoverflow.com/questions/39473375
复制相似问题