这个程序保存在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
你用字节流读数据,为什么要转为字符数据?英文char占8个位,应该是可以正常转为字母,汉字转不了。
基础的东西你还需要继续学一下。