当前位置:编程学习 > JAVA >>

IO文件的读取问题

FileReader fw=new FileReader ("123.txt");
int ch =fw.read();
我要问的是fw.read();不是每次读取一个字符吗  为什么要对ch定义类型为int整数型  不直定义为char类型 谢谢 --------------------编程问答-------------------- char 非负 --------------------编程问答--------------------
引用 1 楼 ilyysys 的回复:
char 非负


是为了下一步判断:
while(fw.read() != -1) --------------------编程问答-------------------- 每个字符都有对应的数值呀 int i=(int)a
char c='a';
int i=(int)c; --------------------编程问答-------------------- char可以当作int来看 --------------------编程问答-------------------- 查一查ASCII码表,应该你就会比较清楚了。 --------------------编程问答--------------------
引用 5 楼 walkman_22 的回复:
查一查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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,