java使用readUTF()讀取中文拋出EOFException異常的處理方法


文本文件讀取時,類DataInputStream是錯誤的正如文檔所述,類DataInputStream用於從底層輸入流中讀取原始Java數據類型,而readUTF()使用某種修改的UTF-8格式(不是標准的UTF-8格式)。 
要從文本文件中讀取,您應該使用Reader。java.io中存在的各種Reader類(例如BufferedReader,InputStreamReader,FileReader等)負責使用字符編碼將數據從輸入流轉換為文本。 
解決方案一:

File file = new File("C:\\MyFile.txt");
fis = new FileInputStream(file);
 
isr = new InputStreamReader(fis, "UTF-8");
br = new BufferedReader(isr);
 
String line;
while ((line = br.readLine()) != null) {
  System.out.println(line);
}

解決方案二:

使用:

new String(file.readLine().getBytes("ISO-8859-1"),"utf-8");

替代readUTF()來獲取文本中的中文。


免責聲明!

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



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