这个程序保存在F:\java\io\TestFileInputStream.java路径下,
程序功能是显示这个程序的所有内容,并显示读取的字节数
import java.io.*;public class TestFileInputStream {
 public static void main(String[] args) {
  int b = 0;                                                  /*在这里把int申请为char类型*/
  FileInputStream in = null;
  try {
   in = new FileInputStream("F:\\java\\io\\TestFileInputStream.java");
  } catch (FileNotFoundException e) {
   System.out.println("找不到指定文件");
   System.exit(-1);
  }
  try {
   long num = 0;
   while((b=in.read()) != -1) {                          /*这里改成,while((b=(char)in.read()) != -1) 
    System.out.print((char)b);
    num ++;
   }
   in.close();
   System.out.println("共读取了"+num+"个字节");   
  } catch (IOException e1) {
   System.out.println("文件读取错误");
   System.exit(-1);
  }
 }
}如果按注释中的内容作修改
程序运行会出错,一直显示字符(?),并且不会停止我想问的是:
char是占16位,而每次读一个byte。char是能放下每次所读内容的,为什么会出错呢。若能讲解,感激不尽Java