1. 程式人生 > >scala文件讀取報錯“java.nio.charset.MalformedInputException: Input length = 1”

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

info 設置 ava put 編碼 今天 讀取 tex 源碼

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

讀取文件的代碼如下:

技術分享圖片

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

技術分享圖片

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

技術分享圖片

所以如果使用UTF-8讀取GBK文件會出現問題,需要指定讀取編碼為GBK

技術分享圖片

或者

技術分享圖片

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

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

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