为什么BufferedReader只能读取第一行

dragon515 2006-02-24 05:40:44
代码如下:
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
new FileInputStream("hd1.txt")));
line = reader.readLine();
System.out.println(line);
if(line == null)
return "文件为空!";
//else {
if(line != null){
StringTokenizer stringTokenizer = new StringTokenizer(line,"\u5639\u563b");
while(stringTokenizer.hasMoreTokens()){
String phone = stringTokenizer.nextToken();
String[] phoneInfo = phone.split(",");
String tempNumber = phoneInfo[1].substring(1,phoneInfo[1].length()-1);
//System.out.println(phone);
if(tempNumber.equals(phoneNumber.substring(0,7))){
cityName = phoneInfo[0].substring(1,phoneInfo[0].length()-1);
break;
}
}
}
reader.close();
} catch(IOException ioe) {
ioe.printStackTrace();
}

hd1.txt文件:
"col001","col002","mobileflag","id"
"阿坝","1388248","qqt",1
"阿坝","1388249","qqt",2
"阿坝","1399040","qqt",3
"阿坝","1399041","qqt",4
"阿坝","1399042","qqt",5
为社么读取到hd1.txt文件的第一行?
...全文
1068 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
panzi667 2006-02-27
  • 打赏
  • 举报
回复
一句话,分多
wangx1949 2006-02-27
  • 打赏
  • 举报
回复
切记循环.
jeffaple 2006-02-27
  • 打赏
  • 举报
回复
/**
* Read a line of text. A line is considered to be terminated by any one
* of a line feed ('\n'), a carriage return ('\r'), or a carriage return
* followed immediately by a linefeed.
*
* @return A String containing the contents of the line, not including
* any line-termination characters, or null if the end of the
* stream has been reached
*
* @exception IOException If an I/O error occurs
*/
Hamber 2006-02-27
  • 打赏
  • 举报
回复
while ((line = reader.readLine()) != null)
{
....
}
正解
zorro09 2006-02-27
  • 打赏
  • 举报
回复
楼上,最简单的正解了,哈哈~!顶
crazycy 2006-02-26
  • 打赏
  • 举报
回复
9494,赶快路过,kingofworl(良辰美景虚度) 给的是正解,啦啦啦
tlowl 2006-02-26
  • 打赏
  • 举报
回复
各位看看这么说是不是通俗一点,readLine()确实是每次只读出一行,所以你需要用一个循环来读出每一行
fangshao 2006-02-26
  • 打赏
  • 举报
回复
你怎么不用read(byte[])列 这样你想读多少都么的问题 呵呵
dztc 2006-02-25
  • 打赏
  • 举报
回复
居然有众多星星来关注这种问题,老大们大把问题等你们去解决呢,别在这里浪费时间了.
yuzl32 2006-02-25
  • 打赏
  • 举报
回复
路过,好象问题解决?
那,恭喜恭喜!!
wyqiang 2006-02-24
  • 打赏
  • 举报
回复
楼主跟大家开玩笑
kingofworl 2006-02-24
  • 打赏
  • 举报
回复
因为你只用了一次readlin啊
line = reader.readLine();

应该像这样循环读
while ((line = reader.readLine()) != null)
{
....
}

zb_java 2006-02-24
  • 打赏
  • 举报
回复
line = reader.readLine();只读了一行呀!
改为while(line!=null)
才能循环读取所有行
CEO_ZHU 2006-02-24
  • 打赏
  • 举报
回复
支持!!
lydvqq 2006-02-24
  • 打赏
  • 举报
回复
while ((line = reader.readLine()) != null)
{
....
}
正解
shan1119 2006-02-24
  • 打赏
  • 举报
回复
要循环取得,直到最后
infowain 2006-02-24
  • 打赏
  • 举报
回复
因为你只用了一次readlin啊
line = reader.readLine();

应该像这样循环读
while ((line = reader.readLine()) != null)
{
....
}

interpb 2006-02-24
  • 打赏
  • 举报
回复
if(line != null){

改为while(line!=null)
才能循环读取所有行
treeroot 2006-02-24
  • 打赏
  • 举报
回复
没错呀,你只读了一行呀!

62,614

社区成员

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

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