Ich verwende Scala 2.8.0 und versuchen Rohr getrennte Datei wie in Code zu lesen unter snipped:Wie löst man java.nio.charset.UnmappableCharacterException in Scala 2.8.0 auf?
object Main {
def main(args: Array[String]) :Unit = {
if (args.length > 0) {
val lines = scala.io.Source.fromPath("QUICK!LRU-2009-11-15.psv")
for (line <-lines)
print(line)
}
}
}
Hier ist der Fehler:
Exception in thread "main" java.nio.charset. UnmappableCharacterException: Eingabelänge = 1 bei java.nio.charset.CoderResult.throwException (CoderResult.java:261) unter sun.nio.cs.StreamDecoder.implRead (StreamDecoder.java:319) bei sun.nio.cs. StreamDecoder.read (StreamDecoder.java:158) bei java.io.InputStreamReader.read (InputStreamReader.java:167) bei java.io.BufferedReader.fill (BufferedReader.java:136) bei java.io.BufferedReader.read (BufferedReader.java:157) bei scala.io.BufferedSource $$ anonfun $ 1 $ $ anonfun $ gelten $ 1. apply (BufferedSource.scala: 29) bei scala.io.BufferedSource $$ anonfun $ 1 $$ anonfun $ anwenden $ 1.apply (BufferedSource.scala: 29) bei scala.io.Codec.wrap (Codec.scala: 65) bei scala.io.BufferedSource $$ anonfun $ 1.apply (BufferedSource.scala: 29) bei scala.io.BufferedSource $$ anonfun $ 1.apply (BufferedSource.scala: 29) bei scala.collection.Iterator $$ anon $ 14.next (Iterator.scala: 149) bei scala.collection.Iterator $$ anon $ 2.next (Iterator.scala: 745) bei scala.collection.Iterator $$ anon $ 2.head (Iterator.scala: 732) bei scala.collection.Iterator $$ anon $ 24.hasNext (Iterator.scala: 405) bei scala.collection.Iterator $$ anon $ 20.hasNext (Iterator.scala: 320) bei scala.io.Source.hasNext (Quelle. scala: 209) bei scala.collection.Iterator $ class.foreach (Iterator.scala: 534) bei scala.io.Source.foreach (Source.scala: 143) ... bei infillreports.Main $ .main (Main.scala: 8) bei infillreports.Main.main (Main.scala) Java Ergebnis: 1
Sie sind einfach super !!!! Vielen Dank. –
Ich hoffe, Sie werden sich die Zeit nehmen zu verstehen, warum das Hinzufügen von "UTF-8" hier notwendig war und wie es das Verhalten beim Lesen von Zeichen aus dem Eingabestream verändert hat. Wenn Sie es nicht verstehen, sollten Sie Ihre Frage hier beantworten oder eine neue Frage zu Bytes, Zeichen und Zeichenkodierungen stellen. – seh
In Scala 2.12.3 sollten Sie schreiben Source.fromFile (fileName) (Codec ("Utf-8")) –