scala - 如何在 Scala 中导入 .txt 文件

标签 scala import

大家好,我是编程新手,如何导入 .txt 文件?我的代码找不到该文件,是否必须将其放入特定目录?

我的代码:

object Zettel01 extends App {
import scala.io.Source

object Suchtest {
  val gesch = Source.fromFile("DieUnendlicheGeschichte.txt").getLines()
  for (w <- gesch) println(w)
}
}

我尝试了不同的代码,但问题总是一样,我找不到 .txt 文件...

在此先感谢您的帮助 乱舞1337

最佳答案

您在计算机上运行的每个 Scala 程序最终都是一个 java 进程。这个进程将有一个“工作目录”,就像您计算机上的每个进程一样。默认情况下,工作目录是启动它的进程的工作目录,即启动程序时 shell 或命令行解释器的当前目录。

现在,这意味着了解您如何启动程序非常重要。如果您使用命令行并以 java MyCoolProgram 的方式启动您的程序,则 shell 的当前目录将成为程序的工作目录。如果您使用像 Eclipse 或 IntelliJ IDEA 这样的 IDE,它们通常使用您的 IDE 项目的项目文件夹作为它们启动的进程的工作目录。

有一种简单的方法可以快速找到它:您总是可以打印出 new java.io.File(".").getAbsolutePath() 的结果。这将打印工作目录的完整路径。例如,您可以像这样编写一个小的 Scala 程序:

object PrintWorkingDirectory extends App {
  println(new java.io.File(".").getAbsolutePath())
}

然后开始吧。在控制台上,您应该找到程序工作目录的完整路径。如果您将名为“DieUnendlicheGeschichte.txt”的文件放入此目录,您的程序将在该文件名下找到该文件。

当然,您不必将所有文件都转储到那个目录中。您可以创建子目录以更好地组织文件。例如,您可以将文件放在类似“resources/text/DieUnendlicheGeschichte.txt”的路径中。

最后,我想指出的是,还有一种不同的方法可以将资源文件与您的程序相关联,并加载它们。这个想法是将代码(类文件)以及文本、图像、CSV 文件、XML 文件等资源放入一个大文件中。这将是一个 JAR 文件。然后,您可以使用 ClassLoader 通过 URL 访问 JAR 文件中的资源。

详细解释该过程超出了这个问题的范围;这只是一些流行语,您(或其他读者)可以搜索这些流行语,以防他们想要查找更详细的过程。

关于scala - 如何在 Scala 中导入 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29863418/

相关文章:

java - 如何在Play框架中不设置路由的情况下打开静态的.html页面?

Powershell - 从文件导入数据

Python 名称 'os' 未定义

java - eclipse无法导入apache tika src

java - 从两个冲突的 jar 导入类时,使用哪个?

scala - 为什么 Scala 2.9.1 没有实现 NodeSeq 也是 GenTraversableOnce

scala - Spark : Extract Values from Output RDD

scala - 在列表中的重复对之间添加标记字符

json - 使用组合器: how to deal with nested optional objects? Play 2.2 JSON读

import - 手动功能模块传输到另一个系统现有功能组?