java 文件一个一个字节读取(但内容有中文)

publicstaticvoidmain(String[]args)throwsIOException{FileInputStreamfis=newFileInputSt... public static void main(String[] args) throws IOException {

FileInputStream fis = new FileInputStream("io/1.txt");

int len ;
while((len = fis.read()) != -1){
System.out.print((char)len); //如果中文怎么单个输出?

}

fis.close();

}
展开
 我来答
百度网友d9fded7
2016-09-13 · 超过21用户采纳过TA的回答
知道答主
回答量:64
采纳率:60%
帮助的人:30.3万
展开全部
这是题目吗?
一个汉字为两个byte,你一个个读出来转码是不行的。应该全部读出来统一转码,拿到数据之后想怎么输出就怎么输出了。
下面是个例子,不太确定对不对,不过能给你一个参考。
string str = "";
while((n=bu.read(a))!=-1)
{
str += new String(a,o,n)
}
return new String(str.getBytes("UTF-8"),"UTF-8");

第一个"UTF-8",是读取的文件的编码方式,第二个是要转成的编码方式。
final_bobo
2016-09-13 · TA获得超过139个赞
知道小有建树答主
回答量:220
采纳率:100%
帮助的人:98.1万
展开全部
看看你操作的是不是字符类型的可以考虑使用字符流对中文操作,就能巧妙的避免乱码问题
追问
用字符流是可以的。
但如果用字节流?有方法?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式