2017-02-12 118 views
1

分隔文本文件当我在20万线的文件尝试分析txt文件我有这样的错误:解析斯卡拉

java.nio.charset.UnmappableCharacterException: Input length = 1

我遇到错误我的程序中断后:

val bufferedSource = io.Source.fromFile(path) 
for (line <- bufferedSource.getLines.drop(1)) { 
    line.split('|').toList.drop(1) 
    } 

如果我没有理解正确的,错误是in io.Source.fromFile(path)。 我如何跳过坏行?

+2

的可能的复制[如何在斯卡拉2.8.0解决java.nio.charset.UnmappableCharacterException?](HTTP:/ /stackoverflow.com/questions/1757272/how-to-resolve-java-nio-charset-unmappablecharacterexception-in-scala-2-8-0) – Simon

+0

我有这个错误不在第一行。我在200k行有错误 –

+0

它似乎仍然是一个字符编码问题。要么你需要处理非ascii字符或确保你的文件只有acii值。 – Simon

回答

1

不幸的是,你必须自己处理编码问题。 其中一个2个编码的经常为我工作:

val bufferedSource = io.Source.fromFile(path, enc = Codec.UTF8.name) 
for (line <- bufferedSource.getLines.drop(1)) { 
    line.split('|').toList.drop(1) 
    } 

val bufferedSource = io.Source.fromFile(path, enc = Codec.ISO8859.name)