Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 为什么我会从这段代码中得到一个格式错误的InputException?_Scala - Fatal编程技术网

Scala 为什么我会从这段代码中得到一个格式错误的InputException?

Scala 为什么我会从这段代码中得到一个格式错误的InputException?,scala,Scala,我是Scala的新手,我想自己写一些源代码,让自己变得更好。 我编写了一个简单的对象(带有一个主条目),以模拟对当前目录的所有文件的“grep”调用。(我从EclipseIndigo启动该程序,并使用DebianSquence): 提前感谢您的帮助:)来自JavaDoc: 当输入字节序列对于给定字符集不合法时引发,或 输入字符序列不是合法的16位Unicode 顺序 将currect encoding作为参数传递给Source.fromFile方法。您可以通过在代码中添加以下代码片段来处理此字

我是Scala的新手,我想自己写一些源代码,让自己变得更好。 我编写了一个简单的对象(带有一个主条目),以模拟对当前目录的所有文件的“grep”调用。(我从EclipseIndigo启动该程序,并使用DebianSquence):

提前感谢您的帮助:)

来自JavaDoc:

当输入字节序列对于给定字符集不合法时引发,或 输入字符序列不是合法的16位Unicode 顺序


将currect encoding作为参数传递给
Source.fromFile
方法。

您可以通过在代码中添加以下代码片段来处理此字符编码异常

import scala.io.Codec
import java.nio.charset.CodingErrorAction


implicit val codec = Codec("UTF-8")
codec.onMalformedInput(CodingErrorAction.REPLACE)
codec.onUnmappableCharacter(CodingErrorAction.REPLACE)

非常感谢。你认为这是因为我在Debian下,默认使用UTF8编码吗?谢谢:)。此外,我还尝试了Source.fromFile(文件,“iso-8859-1”).getLines.toList,它可以删除异常,但这次我仍然没有得到预期的结果(包含regex“*aur.*”的行)。如果您不提供
字符集
,JVM将采用底层操作系统的默认语言环境和字符集。
Exception in thread "main" java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:260)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:319)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at scala.io.BufferedSource$BufferedLineIterator.hasNext(BufferedSource.scala:67)
at scala.collection.Iterator$class.foreach(Iterator.scala:772)
at scala.io.BufferedSource$BufferedLineIterator.foreach(BufferedSource.scala:43)
at scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:48)
at scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:130)
at scala.collection.TraversableOnce$class.toList(TraversableOnce.scala:242)
at scala.io.BufferedSource$BufferedLineIterator.toList(BufferedSource.scala:43)
at com.gmail.bernabe.laurent.scala.tests.DealWithFiles$.linesOfFile$1(DealWithFiles.scala:18)
at com.gmail.bernabe.laurent.scala.tests.DealWithFiles$$anonfun$grepFilesHere$2.apply(DealWithFiles.scala:23)
at com.gmail.bernabe.laurent.scala.tests.DealWithFiles$$anonfun$grepFilesHere$2.apply(DealWithFiles.scala:20)
at scala.collection.TraversableLike$WithFilter$$anonfun$map$2.apply(TraversableLike.scala:697)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:34)
at scala.collection.mutable.ArrayOps.foreach(ArrayOps.scala:38)
at scala.collection.TraversableLike$WithFilter.map(TraversableLike.scala:696)   
at com.gmail.bernabe.laurent.scala.tests.DealWithFiles$.grepFilesHere(DealWithFiles.scala:20)
at com.gmail.bernabe.laurent.scala.tests.DealWithFiles$.main(DealWithFiles.scala:10)
at com.gmail.bernabe.laurent.scala.tests.DealWithFiles.main(DealWithFiles.scala)
import scala.io.Codec
import java.nio.charset.CodingErrorAction


implicit val codec = Codec("UTF-8")
codec.onMalformedInput(CodingErrorAction.REPLACE)
codec.onUnmappableCharacter(CodingErrorAction.REPLACE)