IO文件的读取问题
FileReader fw=new FileReader ("123.txt");int ch =fw.read();
我要问的是fw.read();不是每次读取一个字符吗 为什么要对ch定义类型为int整数型 不直定义为char类型 谢谢 --------------------编程问答-------------------- char 非负 --------------------编程问答--------------------
是为了下一步判断:
while(fw.read() != -1) --------------------编程问答-------------------- 每个字符都有对应的数值呀 int i=(int)a
char c='a';
int i=(int)c; --------------------编程问答-------------------- char可以当作int来看 --------------------编程问答-------------------- 查一查ASCII码表,应该你就会比较清楚了。 --------------------编程问答--------------------
API里面说返回的是int类型,一定要用int类型接。字符数据为什么返回int类型?楼上正解。 --------------------编程问答-------------------- 返回时表示FileReader读取到了多少个字符,方便你操作。我们常常会这样做:
public static void main(String[] args) throws Exception{
FileReader fr = new FileReader("D:\\workspace\\cloudserver\\src\\com\\cs\\web\\sqlmap\\Logger.xml");
char[] cbuf = new char[1024];
int i;
while((i = fr.read(cbuf)) != -1){
System.out.println(new String(cbuf,0,i));
}
}
--------------------编程问答-------------------- 在C++里好像char和int是通用的,甚至是连强转都不用.
而java里反正也差不多吧 --------------------编程问答-------------------- 因为文件的size不确定,所以就要从头读到尾一直读。按字符读取,每读取一个要进行一下判定。java通常采用一个while语句来判断是否已经读取完毕,如果为空的话读出的字符对应的int数值为-1
while(fw.read() != -1){
//进行一些操作
}
每个字符都对应一个int类型的数值,这样进行判定比较方便 --------------------编程问答-------------------- 看我的博文吧,就是针对你的问题写的,有什么问题我们再讨论下。
http://blog.csdn.net/wj0740501124/article/details/7333441 --------------------编程问答--------------------
while(fw.read() != -1){
char c= (char)fw.read();
}
c就是你要读取的字符了 --------------------编程问答-------------------- 在API中的方法定义是 int read() 所以read()方法返回的是int的类型! --------------------编程问答-------------------- 返回时表示FileReader读取到了多少个字符,方便你操作,特别是判断文件读完没的时候while(fw.read() != -1 表示没读完,读完了返回-1
补充:Java , Java SE