java 读取文件流乱码输出乱码

File f1 = new File ("a.txt");
FileInputStream is=new FileInputStream(f1);
int i;
while((i=is.read())!=-1){
System.out.print((char)(i));
}

如果你全是中文的话,中文是两个字节,那么可以采用两个字节一起读,如果你中英文交叉的文本,那就不好办了,只能把文本一次性全都读进来再输出。

纯中文读取:
File f1 = new File ("a.txt");
FileInputStream is=new FileInputStream(f1);
int i;
byte[] b =new byte[2];
while((i=is.read(b))!=-1){
System.out.print(new String(b));
}

中英文混合的文本读取

byte[] b =new byte[yourtxtlength];

yourtxtlength就是你文本字节的长度
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-10
可以直接这么写,加入字符编码:
InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"), "utf-8");
剩下的一样
第2个回答  2011-11-10
汉字出现乱码,是因为你用字节流来读取汉字了,你应该用字符流,FileReader来读取文件,你试一下吧
相似回答