InputStreamReader解決讀取文字中文亂碼
阿新 • • 發佈:2020-08-24
建立一個txt文字,文字採用的編碼格式是ANSI,首先FileInputStream從a.txt檔案讀取,並且一個位元組一個位元組傳給InputStreamReader,當返回三個位元組時(UTF-8是三個位元組為1個漢字),FileInputStream就去UTF-8表中找所對應的中文漢字。結果顯而易見,所以出現亂碼.所以要將“UTF-8"設定為"GBK”,或者將txt文字的編碼格式改為UTF-8
/** * http://127.0.0.1:8080/zifuliu/du * 字元流,輸入流,讀 * 高效流 * @return *View Code@throws IOException */ @RequestMapping("/du") public String du()throws IOException { //使用預設編碼 InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("D:/aaa.txt"),"utf-8"); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String str; StringBuilder stringBuilder= new StringBuilder(); while ((str=bufferedReader.readLine())!=null){ System.out.println("====>字元流:"+str); stringBuilder.append(str); } bufferedReader.close(); return stringBuilder.toString(); }