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

Filef1=newFile("a.txt");FileInputStreamis=newFileInputStream(f1);inti;while((i=is.rea... File f1 = new File ("a.txt");
FileInputStream is=new FileInputStream(f1);
int i;
while((i=is.read())!=-1){
System.out.print((char)(i));
}
展开
 我来答
cs6641468
推荐于2017-11-24 · TA获得超过5713个赞
知道大有可为答主
回答量:863
采纳率:100%
帮助的人:989万
展开全部
如果你全是中文的话,中文是两个字节,那么可以采用两个字节一起读,如果你中英文交叉的文本,那就不好办了,只能把文本一次性全都读进来再输出。

纯中文读取:
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就是你文本字节的长度
EvilProxy
2011-11-10 · TA获得超过294个赞
知道小有建树答主
回答量:280
采纳率:100%
帮助的人:263万
展开全部
可以直接这么写,加入字符编码:
InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"), "utf-8");
剩下的一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蛋哥小短片
2011-11-10 · TA获得超过1239个赞
知道小有建树答主
回答量:366
采纳率:71%
帮助的人:146万
展开全部
汉字出现乱码,是因为你用字节流来读取汉字了,你应该用字符流,FileReader来读取文件,你试一下吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式