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

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();

}

这是题目吗?
一个汉字为两个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",是读取的文件的编码方式,第二个是要转成的编码方式。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-13
看看你操作的是不是字符类型的可以考虑使用字符流对中文操作,就能巧妙的避免乱码问题追问

用字符流是可以的。
但如果用字节流?有方法?

相似回答