estoy usando Scala 2.8.0 y tratando de leer el archivo delimitado pipa como en el código cortado con tijeras a continuación:Cómo resolver java.nio.charset.UnmappableCharacterException en Scala 2.8.0?
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)
}
}
}
Aquí está el error:
Excepción en hilo java.nio.charset "principal". UnmappableCharacterException: longitud de entrada = 1 en java.nio.charset.CoderResult.throwException (CoderResult.java:261) en sun.nio.cs.StreamDecoder.implRead (StreamDecoder.java:319) en sun.nio.cs. StreamDecoder.read (StreamDecoder.java:158) en java.io.InputStreamReader.read (InputStreamReader.java:167) en java.io.BufferedReader.fill (BufferedReader.java:136) en java.io.BufferedReader.read (BufferedReader.java:157) en scala.io.BufferedSource $$ anonfun $ 1 $$ anonfun $ apply $ 1. aplicar (BufferedSource.scala: 29) en scala.io.BufferedSource $$ anonfun $ 1 $$ anonfun $ apply $ 1.apply (BufferedSource.scala: 29) en scala.io.Codec.wrap (Codec.scala: 65) en scala.io.BufferedSource $$ anonfun $ 1.apply (BufferedSource.scala: 29) en scala.io.BufferedSource $$ anonfun $ 1.aplicación (BufferedSource.scala: 29) en scala.collection.Iterator $$ anon $ 14.next (Iterator.scala: 149) at scala.collection.Iterator $$ anon $ 2.next (Iterator.scala: 745) at scala.collection.Iterator $$ anon $ 2.head (Iterator.scala: 732) at scala.collection.Iterator $$ anon $ 24.hasNext (Iterator.scala: 405) en scala.collection.Iterator $$ anon $ 20.hasNext (Iterator.scala: 320) en scala.io.Source.hasNext (Fuente. scala: 209) en scala.collection.Iterator $ class.foreach (Iterator.scala: 534) en scala.io.Source.foreach (Source.scala: 143) ... en infillreports.Main $ .main (Main.scala: 8) en infillreports.Main.main (Main.scala) Java Resultado: 1
¡Eres simplemente IMPRESIONANTE! Muchas gracias. –
Espero que se tome el tiempo para comprender por qué era necesario agregar "UTF-8" aquí, y cómo cambió el comportamiento de la lectura de los caracteres del flujo de entrada. Si no lo obtiene, elabore su pregunta aquí o formule una nueva pregunta sobre los bytes, los caracteres y las codificaciones de los personajes. – seh
En scala 2.12.3 debe escribir Source.fromFile (fileName) (Codec ("utf-8")) –