私は132kbのファイルを持っていて(実際には大きいとは言えません)、Scala REPLから読み取ろうとしていますが、java.nio.charset.MalformedInputException
例外が発生するため、2048文字を超えて読み取ることができません。
これらは私が取るステップです:
val it = scala.io.Source.fromFile("docs/categorizer/usig_calles.json") // this is ok
it.take(2048).mkString // this is ok too
it.take(1).mkString // BANG!
java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:277)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:338)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
何が間違っている可能性がありますか?
-
どうやら問題は、ファイルがUTFエンコードされていないことでした
それをUTFとして保存し、すべてが機能します。イテレータでmkStringを発行するだけで、ファイルの内容全体が取得されます。
奇妙なことに、エラーは最初の2048文字を通過するだけで発生しました...