2

使用 Scala 2.10.2------------

我是一名Java工程师,从昨天开始学习Scala,但是现在卡住了,这个简单的代码对我不起作用,但是当我使用java编写它时,它可以正常工作:

    package lesson4

    import scala.io.Source
    import scala.reflect.io.File


    object Test {
        def main(args: Array[String]): Unit = {
        var filePath = Source.getClass().getResource("/lesson4/test.txt")
        var file = Source.fromFile(filePath.getFile())
        var lines = file.getLines
        lines.foreach(println)
  }
}

该文件位于正确的路径中: 小路 但代码不起作用:

Exception in thread "main" java.io.FileNotFoundException: /Users/wenjiezhang/Desktop/source_files/git_hub%20workspace/Learning%20Scala/ScalaLearning/bin/lesson4/test.txt (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:146)
    at scala.io.Source$.fromFile(Source.scala:90)
    at scala.io.Source$.fromFile(Source.scala:75)
    at scala.io.Source$.fromFile(Source.scala:53)
    at lesson4.Test$.main(Test.scala:20)
    at lesson4.Test.main(Test.scala)
4

2 回答 2

7

从错误日志中可以看出,您提供的路径正在转换为 URL(例如SPACE变为%20)。您应该使用该fromURL方法Source.fromURL(Source.getClass().getResource("/lesson4/test.txt"))

scala.io.Source 文档

于 2013-10-29T05:36:11.407 回答
2

您的路径中有空格转换为从 URL 编码的。

于 2013-10-29T05:33:20.770 回答