IO文件的读取问题

jsdf2008 2012-02-27 10:05:40
FileReader fw=new FileReader ("123.txt");
int ch =fw.read();
我要问的是fw.read();不是每次读取一个字符吗 为什么要对ch定义类型为int整数型 不直定义为char类型 谢谢
...全文
183 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
superhill 2012-03-08
  • 打赏
  • 举报
回复
因为文件的size不确定,所以就要从头读到尾一直读。按字符读取,每读取一个要进行一下判定。java通常采用一个while语句来判断是否已经读取完毕,如果为空的话读出的字符对应的int数值为-1

while(fw.read() != -1){

//进行一些操作

}

每个字符都对应一个int类型的数值,这样进行判定比较方便
DayDreamer922 2012-03-08
  • 打赏
  • 举报
回复
返回时表示FileReader读取到了多少个字符,方便你操作,特别是判断文件读完没的时候while(fw.read() != -1 表示没读完,读完了返回-1
l2316623667 2012-03-08
  • 打赏
  • 举报
回复
在API中的方法定义是 int read() 所以read()方法返回的是int的类型!
jake512 2012-03-08
  • 打赏
  • 举报
回复

while(fw.read() != -1){
char c= (char)fw.read();
}
c就是你要读取的字符了
wj0740501124 2012-03-08
  • 打赏
  • 举报
回复
看我的博文吧,就是针对你的问题写的,有什么问题我们再讨论下。
http://blog.csdn.net/wj0740501124/article/details/7333441
zzt369880281 2012-03-07
  • 打赏
  • 举报
回复
在C++里好像char和int是通用的,甚至是连强转都不用.
而java里反正也差不多吧
Papaver 2012-03-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 walkman_22 的回复:]

查一查ASCII码表,应该你就会比较清楚了。
[/Quote]

API里面说返回的是int类型,一定要用int类型接。字符数据为什么返回int类型?楼上正解。
walkman_22 2012-03-07
  • 打赏
  • 举报
回复
查一查ASCII码表,应该你就会比较清楚了。
安特矮油 2012-03-07
  • 打赏
  • 举报
回复
返回时表示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));
}
}


xinlan1022 2012-02-28
  • 打赏
  • 举报
回复
char可以当作int来看
a372210774 2012-02-27
  • 打赏
  • 举报
回复
每个字符都有对应的数值呀 int i=(int)a
char c='a';
int i=(int)c;
昨日凡阳 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ilyysys 的回复:]

char 非负
[/Quote]

是为了下一步判断:
while(fw.read() != -1)
噢噢噢噢 2012-02-27
  • 打赏
  • 举报
回复
char 非负

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧