在写上一篇的博客的时候,发现爬取txt的时候出现了乱码,代码如下:
reader = new BufferedReader(new FileReader(txtFile));
原因大概是这样的,因为我们的系统在编写txt文档的时候,默认设置为GBK格式的。但是,eclipse中设置的编码格式为utf-8,
所以,出现了乱码。
百度的时候看到好多人说编码的问题,然后看了输入流的好多方法都没有找到关于设置编码的方法。
最后在一位大哥的博客里看到了这样的一行代码:
reader = new BufferedReader(new InputStreamReader(new FileInputStream(txtFile),unicode));
<pre name="code" class="java">所以,特地开了这样一篇博客,来谈谈我对这样一行代码的理解。
BufferedReader()这个方法是读取字符流的。
InputStreamReader()这个方法是字节流转字符流的桥梁。同时,他的第二个参数是String类型的,用来设置编码格式。
FileInputStream()这个方法是InputStream类的子类FileInputStream的方法。因此,他也是一个读取字节流的方法。