J'utilise Scala 2.8.0 et en essayant de lire tube fichier délimité comme dans le code ci-dessous snipped:Comment faire pour résoudre java.nio.charset.UnmappableCharacterException dans 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)
}
}
}
est ici l'erreur:
Exception dans le thread "principal" java.nio.charset. UnmappableCharacterException: Longueur d'entrée = 1 à java.nio.charset.CoderResult.throwException (CoderResult.java:261) à sun.nio.cs.StreamDecoder.implRead (StreamDecoder.java:319) à sun.nio.cs. StreamDecoder.read (StreamDecoder.java:158) à java.io.InputStreamReader.read (InputStreamReader.java:167) à java.io.BufferedReader.fill (BufferedReader.java:136) à java.io.BufferedReader.read (BufferedReader.java:157) à scala.io.BufferedSource $$ anonfun $ 1 $$ anonfun $ s'appliquent $ 1. apply (BufferedSource.scala: 29) à scala.io.BufferedSource $$ anonfun $ 1 $$ anonfun $ appliquer $ 1.apply (BufferedSource.scala: 29) à scala.io.Codec.wrap (Codec.scala: 65) à scala.io.BufferedSource $$ anonfun $ 1.apply (BufferedSource.scala: 29) à scala.io.BufferedSource $$ anonfun $ 1.apply (BufferedSource.scala: 29) à scala.collection.Iterator $$ anon $ 14.next (Iterator.scala: 149) à scala.collection.Iterator $$ anon $ 2.next (Iterator.scala: 745) à scala.collection.Iterator $$ anon $ 2.head (Iterator.scala: 732) à scala.collection.Iterator $$ anon $ 24.hasNext (Iterator.scala: 405) à scala.collection.Iterator $$ anon $ 20.hasNext (Iterator.scala: 320) à scala.io.Source.hasNext (Source. scala: 209) à scala.collection.Iterator $ class.foreach (Iterator.scala: 534) à scala.io.Source.foreach (Source.scala: 143) ... à infillreports.Main $ .main (Main.scala: 8) à infillreports.Main.main (Main.scala) Java Résultat: 1
Vous êtes simplement génial !!!! Merci beaucoup. –
J'espère que vous prendrez le temps de comprendre pourquoi l'ajout de "UTF-8" ici était nécessaire, et comment il a changé le comportement de la lecture des caractères du flux d'entrée. Si vous ne l'obtenez pas, veuillez élaborer votre question ici ou poser une nouvelle question concernant les octets, les caractères et les encodages de caractères. – seh
Dans scala 2.12.3 vous devriez écrire Source.fromFile (fileName) (Codec ("utf-8")) –