代码如下:
import java.io.*;
public class Test {
  public static void main(String[] args) {
    int b = 0;
    FileReader in = null;
    try {
      in = new FileReader("d:\\TestFileInputStream.java");
    } catch (FileNotFoundException e) {
      System.out.println("找不到指定文件"); 
      System.exit(-1);
    }
    
    try {
      long num = 0;
      while((b=in.read())!=-1){
        System.out.print((char)b); 
        num++;
      }
      in.close();  
      System.out.println();
      System.out.println("共读取了 "+num+" 个字节");
    } catch (IOException e1) {
      System.out.println("文件读取错误"); System.exit(-1);
    }
  }
}

红色部分,为什么要强制转化为char类?   

解决方案 »

  1.   

    如果不转它就是个int 打出来就是个数字 你要看数字么?
      

  2.   

    b = in.read()读到的是ascii编码,要显示字符就需要转换
      

  3.   

    你的文件,应该是一个ACSII编码的文件。里面的所有字符都被编码过的。
    一个字节对应一个字符。其对应关系,可以参照《ACSII编码对照表》。
    如果你想显示文件中的字符内容,当然要强制转换成字符。
    否则,显示的只是字符的ACSII码,不信,你可以根据对照表核对一下。