java8 - java.nio.charset.MalformedInputException: Input length = 2
問(wèn)題描述
問(wèn)題解答
回答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); }}}
原來(lái)的代碼需要導(dǎo)入下面的類import java.nio.file.Files;import java.nio.file.Paths;但是換成這種形式import java.io.File;import java.io.FileInputStream;就是正常的,沒(méi)有出錯(cuò)。而且還有朋友說(shuō),將原來(lái)的文本里面,將出錯(cuò)的那一行,刪去一個(gè)字符也是不會(huì)報(bào)錯(cuò)的。很奇怪的問(wèn)題。不知道為啥用nio.file.Files就是有問(wèn)題的
回答2:謝邀。你可能搞錯(cuò)了IO和NIO之間的區(qū)別,最基本的一點(diǎn)是IO是面向流的,NIO面向緩沖區(qū)的,而你的代碼很明顯是使用了BufferedReader以及InputStreamReader流,如果使用nio,readLine根本不能讀取,NIO只能讀取緩沖區(qū),掃描緩沖區(qū)的大小,并且在解析數(shù)據(jù)時(shí),比起阻塞IO流,NIO需要付出更大的代價(jià)。
相關(guān)文章:
1. javascript - 打算寫(xiě)一個(gè)c++的node圖像處理模塊,有沒(méi)有推薦的c++圖片處理庫(kù)?2. java - 同步/異步與阻塞/非阻塞之間的差異具體是什么?3. html5 - 前端面試碰到了一個(gè)緩存數(shù)據(jù)的問(wèn)題,來(lái)論壇上請(qǐng)教一下4. macos - 無(wú)法source activate python275. css - 移動(dòng)端 盒子內(nèi)加overflow-y:scroll后 字體會(huì)變大6. java - butterknife怎么綁定多個(gè)view7. css3 讓圖片變成灰色(filter),但針對(duì)IE11瀏覽器無(wú)效8. 運(yùn)行python程序時(shí)出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯(cuò)誤?9. android - Genymotion 模擬器可以做屏幕適配檢測(cè)嗎?10. python中如何計(jì)算t分布的值?

網(wǎng)公網(wǎng)安備