Path 具有绝对路径的FileNotFoundException
我有这样一个目录:Path 具有绝对路径的FileNotFoundException,path,Path,我有这样一个目录: assigment | |__ src | | | |__ Main.scala | | |__ testcase | |__ Simple.in 在Main.scala中,由Source.fromFile()读取Simple.In: 但是当我在sbt中运行Main.scala时,会出现FileNoutFoundException。当我将路径更改为”./testcase/“+inputFile时,它工作正常。原来的路径是从我的老师那
assigment
|
|__ src
| |
| |__ Main.scala
|
|
|__ testcase
|
|__ Simple.in
在Main.scala中,由Source.fromFile()读取Simple.In:
但是当我在sbt
中运行Main.scala时,会出现FileNoutFoundException
。当我将路径更改为”./testcase/“+inputFile
时,它工作正常。原来的路径是从我的老师那里来的,所以我想知道哪条路径是正确的?哦,顺便说一句,我正在使用Linux /表示当前路径
../means:当前目录上方的目录
因此:当您从“src”运行Scala类时,“/testcase”使它在“src”中查找目录testcase;或使用完整路径名:
“assignment/src/“+”/testcase”变为“assignment/src/testcase”
然而,当你使用
“assignment/src/“+”./testcase”变为“assignment/testcase”
因此,带有“.”的版本会找到有效路径。这就是这里所有的魔力
=>当前目录
。
=>比当前目录高一个
但是访问资源的标准方法是使用sbt项目结构的resources
文件夹
这种方式可以帮助您独立于访问代码中资源的位置(哪个类)来访问文件
文件夹以放置您的文件
src/main/resources
val stream : InputStream = getClass.getResourceAsStream("/readme.txt")
val lines = scala.io.Source.fromInputStream( stream ).getLines
src/main/resources
val stream : InputStream = getClass.getResourceAsStream("/readme.txt")
val lines = scala.io.Source.fromInputStream( stream ).getLines