如何使用scala中的相对路径读取文本文件

4 scala maven

我有一个用scala编写的简单mvn项目.我想访问一个文本文件并阅读其内容.代码工作正常但唯一的问题是我在读取文本文件时给出绝对路径.以下是我的项目的目录结构.

如何使用相对路径来读取该文件?(我是否必须将movies.txt文件移动到资源目录中,如果是这样,我将如何读取该文件?)

任何见解都将非常感激.谢谢

myproject
|-src
|  |-resources
|  |-scala
|      |-movies.simulator
|           |-Boot
|           |-Simulate
|                |-myobject.scala
|                      |Simulate
|
|-target
|-pom.xml
|-README
|-movies.txt
Run Code Online (Sandbox Code Playgroud)

在模拟是包对象的myobject.scala中,我使用绝对路径访问movies.txt文件.

import scala.io.Source
Source
    .fromFile("/home/eshan/projecs/myproject/movies.txt")
    .getLines
    .foreach { line =>
    count+=1
      // custom code            
}
Run Code Online (Sandbox Code Playgroud)

ka4*_*eli 6

移动你movies.txtresources目录,然后你可以做到以下几点:

val f = new File(getClass.getClassLoader.getResource("movies.txt").getPath)

import scala.io.Source
Source
    .fromFile(f)
    .getLines
    .foreach { line =>
    count+=1
      // custom code            
}
Run Code Online (Sandbox Code Playgroud)


Gid*_*ids 5

更简洁地,您可以使用:

Source.fromResource("movies.txt") 
Run Code Online (Sandbox Code Playgroud)

它将查找相对于资源文件夹的路径。