如何在Scala中导入.txt文件

时间:2015-04-25 09:31:16

标签: 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文件......

提前感谢您的帮助 Flurry1337

2 个答案:

答案 0 :(得分:2)

您在计算机上运行的每个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文件中的资源。

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

答案 1 :(得分:0)

System.getProperty(&#34; user.dir&#34;)也会告诉您工作目录。