2019独角兽企业重金招聘Python工程师标准>>>
硬盘中存在文件d://demo.txt,内容如下
你好 123 helloworld 你好世界使用BufferedReader字符流读取
@Test public void test21() throws IOException { BufferedReader br = new BufferedReader(new FileReader("d://demo.txt")); String str = null; while ((str = br.readLine()) != null) { System.out.println(str); } br.close(); }结果,发现中文乱码
��� 123 helloworld �������这是因为我们的eclipse工作空间是utf-8编码格式的,使用FileReader默认是按照工作空间的编码集读取的,而文件在硬盘上存储的格式是gbk(简体中文Windows操作系统中ANSI编码相当于gbk),所以导致乱码。
那么我们只要把eclipse工作空间的编码集改为gbk就好了,但是一般开发中不这么做,既然文件的编码格式是gbk,那么我们能不能使用gbk编码集读取呢?答案是可以的,就是使用FileReader的父类InputStreamReader,可以指定编码集
@Test public void test21() throws IOException { // BufferedReader br = new BufferedReader(new FileReader("d://demo.txt")); BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("d://demo.txt"), "gbk")); String str = null; while ((str = br.readLine()) != null) { System.out.println(str); } br.close(); }结果如下
你好 123 helloworld 你好世界免责声明:本文内容均来自互联网,但不代表简明教程的观点和立场.
已有 4537 次赞