java8 - java.nio.charset.MalformedInputException: Input length = 2
問題描述
問題解答
回答1:public static void main(String[] args) throws IOException {File file = new File('/home/yangxiaohuan/Documents/TokenizeThenSplitParallelDeletePatternLTZero.txt');InputStreamReader read = new InputStreamReader(new FileInputStream(file), 'UTF-8');// 考慮到編碼格式BufferedReader br = new BufferedReader(read);int cnt=0;while(br.ready()){ String text = br.readLine(); cnt++; if(cnt>=47334){System.out.println(text);} System.out.println('cnt = '+cnt); }}}
原來的代碼需要導(dǎo)入下面的類import java.nio.file.Files;import java.nio.file.Paths;但是換成這種形式import java.io.File;import java.io.FileInputStream;就是正常的,沒有出錯。而且還有朋友說,將原來的文本里面,將出錯的那一行,刪去一個字符也是不會報錯的。很奇怪的問題。不知道為啥用nio.file.Files就是有問題的
回答2:謝邀。你可能搞錯了IO和NIO之間的區(qū)別,最基本的一點是IO是面向流的,NIO面向緩沖區(qū)的,而你的代碼很明顯是使用了BufferedReader以及InputStreamReader流,如果使用nio,readLine根本不能讀取,NIO只能讀取緩沖區(qū),掃描緩沖區(qū)的大小,并且在解析數(shù)據(jù)時,比起阻塞IO流,NIO需要付出更大的代價。
相關(guān)文章:
1. python - [已解決]flask QQ郵箱mail2. html - eclipse 標簽錯誤3. 主題切換問題,用過別人的webapp在后臺切換模板主題后手機端打開網(wǎng)頁就是切換到的主題了4. javascript - 小程序中遇到j(luò)s執(zhí)行時序問題5. mysql 5個left關(guān)鍵 然后再用搜索條件 幾千條數(shù)據(jù)就會卡,如何解決呢6. 按照本節(jié)給的代碼“膽小如鼠”并不能變成紅色7. mysql - 在不允許改動數(shù)據(jù)表的情況下,如何優(yōu)化以varchar格式存儲的時間的比較?8. python3.x - git bash如何運行.bat文件?9. javascript - 為什么在谷歌控制臺 輸出1的時候,輸出的1立馬就不見了10. javascript - position fixed;設(shè)置了height 100 卻不是瀏覽器可視窗口的寬高,求大神釋疑。
