java文件读取写出乱码问题解决

时间:2022-10-19 16:45:31

开发eclipse插件(RCP程序)的时候,有一个操作是从在插件中,读取java文件(utf-8编码),然后显示到JtextArea中,奇怪的是,虽然设置了插件工程是utf-8编码,显示到JTextArea的中文仍然是乱码,经过检查才发现,原来读取文件的时候,普通工程如果设置成utf-8编码,读取文件也是utf-8,但是RCP程序,仍然默认为GBK编码读取文本文件,所以读出的字符乱码,可以使用如下语句读取文件,插件工程中就会自动用utf-8的格式读取文件了,这样就避免了显示乱码:

File file=null;
BufferedReader br=null;
StringBuffer sb=new StringBuffer();
file=new File(".//data//help.txt");br=new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));char[] chs=new char[1024];int len=0;while((len=br.read(chs))!=-1){sb.append(new String(chs, 0, len));}jta.setText(sb.toString());