Java读取文件的编码问题

在Java的文件操作中,如果一个文件是UTF-8格式,那么一定要使用UTF-8的编码格式去读取,如果按其他格式读取之后再做转换,可能会发生不可预料的问题,如“乱码”,具体原因我没有搞清楚,因为JDK读取文件时采用了sun.nio.cs.StreamDecoder这个类,这个是sun公司的代码实现,并没有源代码可以参考。

下面就两种方式做记录:
1.Java按一定编码读取文件
InputStream is = Main.class.getResourceAsStream(fileName);
BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8"));
String tmp;
while((tmp = br.readLine()) != null){
    System.out.println(tmp);
}

2.Java字符串编码转换
FileReader reader = new FileReader(fileName);
BufferedReader br = new BufferedReader(reader);
String tmp;
while((tmp = br.readLine()) != null){
    byte[] bs = tmp.getBytes();
    System.out.println(new String(bs, "utf-8"));
}

你可能对下面的文章感兴趣

  1. Eclipse JFace Binding/绑定 (1)

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">