线程中的Scala异常";“主要”;java.io.FileNotFoundException

线程中的Scala异常";“主要”;java.io.FileNotFoundException,scala,fromfile,Scala,Fromfile,下面是我的Scala代码: import scala.io.Source case class TempData(day:Int , DayOfYear:Int , month:Int , year:Int , precip:Double , snow:Double , tave:Double, tmax:Double, tmin:Double) object TempData { def main(args:Array[String]) : Unit

下面是我的Scala代码:

import scala.io.Source

case class TempData(day:Int , DayOfYear:Int , month:Int , year:Int ,
                    precip:Double , snow:Double , tave:Double, tmax:Double, tmin:Double)
object TempData {
 def main(args:Array[String]) : Unit ={
   val source = Source.fromFile("C:///DataResearch/SparkScala/MN212142_9392.csv")
   val lines = source.getLines().drop(1)
   val data= lines.map{ line =>
     val p = line.split(",")
     TempData(p(0).toInt , p(1).toInt, p(2).toInt, p(4).toInt
     , p(5).toDouble, p(6).toDouble , p(7).toDouble, p(8).toDouble,p(9).toDouble)
   }.toArray
   source.close()
   data.take(5).foreach(println)
 }
}
以下是错误:

C:\Java\jdk1.8.0_144\bin\java "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.3\lib\idea_rt.jar=2298:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.3\bin" -Dfile.encoding=UTF-8 -classpath C:\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Java\jdk1.8.0_144\jre\lib\deploy.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\access-bridge-64.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\cldrdata.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\dnsns.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\jaccess.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\jfxrt.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\localedata.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\nashorn.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\sunec.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\sunjce_provider.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\sunmscapi.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\sunpkcs11.jar;C:\Java\jdk1.8.0_144\jre\lib\ext\zipfs.jar;C:\Java\jdk1.8.0_144\jre\lib\javaws.jar;C:\Java\jdk1.8.0_144\jre\lib\jce.jar;C:\Java\jdk1.8.0_144\jre\lib\jfr.jar;C:\Java\jdk1.8.0_144\jre\lib\jfxswt.jar;C:\Java\jdk1.8.0_144\jre\lib\jsse.jar;C:\Java\jdk1.8.0_144\jre\lib\management-agent.jar;C:\Java\jdk1.8.0_144\jre\lib\plugin.jar;C:\Java\jdk1.8.0_144\jre\lib\resources.jar;C:\Java\jdk1.8.0_144\jre\lib\rt.jar;C:\Users\Dell\IdeaProjects\ScalaSpark\target\scala-2.11\classes;C:\Users\Dell\.ivy2\cache\org.scala-lang\scala-library\jars\scala-library-2.11.12.jar TempData
Exception in thread "main" java.io.FileNotFoundException: C:\DataResearch\SparkScala\MN212142_9392.csv (The system cannot find the file specified)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at scala.io.Source$.fromFile(Source.scala:91)
    at scala.io.Source$.fromFile(Source.scala:76)
    at scala.io.Source$.fromFile(Source.scala:54)
    at TempData$.main(TempData.scala:7)
    at TempData.main(TempData.scala)

Process finished with exit code 1
C:\Java\jdk1.8.0\u 144\bin\Java“-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.3\lib\IDEA\rt.jar=2298:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.3\bin“--Dfile.encoding=UTF-8-classpath C:\Java\jdk1.8.0\u 144\jre\lib\charsets.jar;C:\Java\jdk1.8.0\u 144\jre\lib\deploy.jar;C:\Java\jdk1.8.0\u 144\jre\lib\ext\access-bridge-64.jar;C:\Java\jdk1.8.0\u 144\jre\lib\ext\cldrdata.jar;C:\Java\jdk1.8.0\u 144\jre\lib\ext\dnsns.jar;C:\Java\jdk1.8.0\u 144\jre\lib\ext\jaccess.jar;C:\Java\jdk1.8.0\u 144\jre\lib\ext\jfxrt.jar;C:\Java\jdk1.8.0\u 144\jre\lib\ext\localedata.jar;C:\Java\jdk1.8.0\u 144\jre\lib\ext\nashorn.jar;C:\Java\jdk1.8.0\u 144\jre\lib\ext\sunec.jar;C:\Java\jdk1.8.0\u 144\jre\lib\ext\sunjce\u provider.jar;C:\Java\jdk1.8.0\u 144\jre\lib\ext\sunmsapi.jar;C:\Java\jdk1.8.0\u 144\jre\lib\ext\sunpkcs11.jar;C:\Java\jdk1.8.0\u 144\jre\lib\ext\zipfs.jar;C:\Java\jdk1.8.0\u 144\jre\lib\javaws.jar;C:\Java\jdk1.8.0_144\jre\lib\jce.jar;C:\Java\jdk1.8.0\u 144\jre\lib\jfr.jar;C:\Java\jdk1.8.0\u 144\jre\lib\jfxswt.jar;C:\Java\jdk1.8.0\u 144\jre\lib\jsse.jar;C:\Java\jdk1.8.0\u 144\jre\lib\management-agent.jar;C:\Java\jdk1.8.0\u 144\jre\lib\plugin.jar;C:\Java\jdk1.8.0\u 144\jre\lib\resources.jar;C:\Java\jdk1.8.0\u 144\jre\lib\rt.jar;C:\Users\Dell\IdeaProjects\ScalaSpark\target\scala-2.11\classes;C:\Users\Dell\.ivy2\cache\org.scala lang\scala library\jars\scala-library-2.11.12.jar TempData
线程“main”java.io.FileNotFoundException中出现异常:C:\DataResearch\SparkScala\MN212142_9392.csv(系统找不到指定的文件)
位于java.io.FileInputStream.open0(本机方法)
在java.io.FileInputStream.open(FileInputStream.java:195)
位于java.io.FileInputStream。(FileInputStream.java:138)
位于scala.io.Source$.fromFile(Source.scala:91)
位于scala.io.Source$.fromFile(Source.scala:76)
位于scala.io.Source$.fromFile(Source.scala:54)
位于TempData$.main(TempData.scala:7)
位于TempData.main(TempData.scala)
进程已完成,退出代码为1

我的文件(MN2121429392.csv)位于DataResearch和SparkScala文件夹内的C驱动器中。我尝试了所有可能的更改,但没有任何帮助。

尝试使用
文件
类而不是
源代码

new File("path")
它应该可以解决您的问题:)

或者使用类
文件
:) 您可以在下面找到指向文档的链接:

仔细检查你的路径。在我看来,更好的选择是使用相对路径而不是绝对路径。将此文件放入项目中,并尝试使用相对路径。您的应用程序找不到您的文件:)

编辑:

在中,创建了一个简单的文件TempData.scala,其中包含:

import scala.io.Source 

object TempData {
  def main(args:Array[String]) : Unit ={
    val source = Source.fromFile("test.csv")
    val lines = source.getLines()
  }
}
我创建了文件
test.csv


我使用了
scalac TempData.scala
,然后使用
scala TempData
。一切都很好,因为你使用的方法是正确的。您的路径有问题。所以我的建议是尝试使用您放在项目中的文件,如果一切正常,请检查您以前的路径:)

我不确定文件,源是Scala中的一个库(import Scala.io.Source)来加载文件。不确定文件库。是的,但对于在Scala中使用文件,更好的选择是使用Java类:)试试看,我确信这是更好的选择。这里:您可以找到如何在Java中处理文件的示例。Scala类不太好:)是的,你可能是对的,但是如果我不想使用任何java库该怎么办..Scala库不会有帮助吗?使用JavaLibrary会让我做更多的代码更改,因为像getLines()这样的命令不起作用。为什么?在我看来,如果Java中有更好的东西,我们应该使用它。如果要使用scala库,请尝试将此文件放在项目中,并使用相对路径:)您的错误与不正确的路径有关,因此,首先需要检查路径。如果里面有文件,可以使用相对路径。在实践中,最好对此进行控制:)