日期:2014-05-20  浏览次数:20799 次

以字节流读入文件(内容包括中文)时显示乱码
public static void main(String[] args) throws IOException
{

byte[] bytes = new byte[3]; //

File file = new File("c:/a.txt");

FileInputStream fis = new FileInputStream(file);

StringBuffer request1 = new StringBuffer();

while(fis.read(bytes)!= -1)
{
request1.append(new String(bytes)); 
 
}

System.out.println(request1.toString());

}
问题:1. java是如何处理中文字的(编码方式是什么)
  2. 若数组长度是2的倍数则能正常显示,是不是中文字是占两个字节的
  3. 有没有更好的读取方法

------解决方案--------------------
Java code

FileReader fr = new FileReader("c:/a.txt");
BufferedReader br = new BufferedReader (fr)
String line = "";
StringBuffer request1 = new StringBuffer();
while((line = br.readline()) != null){
    request1.append(line);  
}
System.out.println(request1.toString());