scala文件讀取報錯“java.nio.charset.MalformedInputException: Input length = 1”


今天寫spark程序的時候遇到了一個問題就是,讀取文件的時候報了一個錯:“Exception in thread "main" java.nio.charset.MalformedInputException: Input length = 1”

讀取文件的代碼如下:

一看這個這個錯“nio”錯誤,第一感覺就是讀文件方法這里出了問題,於是點擊去看了一下Source.fromFile這個方法的源碼:

果然,這個方法的重載有好幾個,但是每一都直接或間接的需要指定讀取文件的編碼,就是說你需要以什么編碼去讀取你需要讀取的文件,因為我的IDEA設置的編碼時UTF-8

所以如果使用UTF-8讀取GBK文件會出現問題,如果查看一個文本文件是什么編碼的文件呢:

使用notepadd++打開該文件再右下角會看到對應的編碼格式:

說明該文件時UTF-8編碼的。

so

需要指定讀取編碼為GBK

或者

這兩中方式都可以,都是從源碼中得來的。

設置完成之后,重新運行程序,報錯消失

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM