写个scala简单读取文件的例子
package com.spark.scala
import scala.io.Source
object FileOps {
def main(args: Array[String]) {
//val file = Source.fromFile("C:\\Users\\XXXXX\\Desktop\\sobaby.txt")
for(line <- file.getLines){
println(line)
}
}
}
报错:
Exception in thread "main" java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at scala.io.BufferedSource$BufferedLineIterator.hasNext(BufferedSource.scala:72)
at scala.collection.Iterator$class.foreach(Iterator.scala:743)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1195)
at com.spark.scala.FileOps$.main(FileOps.scala:7)
at com.spark.scala.FileOps.main(FileOps.scala)
解决办法:
这是因为windows字符编码问题导致,
更改scala ide for eclipse编码格式
配置java文件的编码格式:windows->Preferences->general->ContentTypes->Java Source File->GBK==Update
重新运行,错误解决