我在Scala中有一个非常简单的例子来读取文本文件。该示例在IntelliJ中进行。但是,当我尝试使用io.Source.fromFile(“.. \ .. \ resources \ example.txt”)时,我得到一个FileNotFoundException。当我输入绝对路径时,代码有效。
有人能告诉我如何使用相对路径在Intellij项目中指定文件吗?
目录结构:
答案 0 :(得分:2)
路径相对于当前/工作目录,即执行java
命令的目录。
从IntelliJ执行应用程序时,此工作目录在用于启动应用程序的运行配置中配置。
因此,转到运行 - 编辑配置... ,然后找到您的运行配置,编辑它,并查看字段"工作目录"包含的内容。默认情况下,工作目录是项目的根目录。
请注意,除非Scala与Java中的字符串转义规则不同,否则路径必须用斜杠分隔:
"../../resources/example.txt"
,或必须转义反斜杠:
"..\\..\\resources\\example.txt"
另外,如果您的目标是将文本文件捆绑到应用程序的jar中,则不应该使用文件IO来读取它,而是使用ClassLoader.getResourceAsStream()
方法。