BufferedReader与DataInputStream的问题

coderone 2008-03-19 12:01:39
因为warning提示:DataInputStream类的readLine()方法已过时。将下面的程序段改成用BufferedReader类实现,不知怎么做?(因为BufferedReader类中没有available()方法)
//计算行数
FileInputStream fis = new FileInputStream ("C:\\myfile.txt");
DataInputStream dis = new DataInputStream (fis);
while(dis.readLine()!=null){
enter_count++;
}
//将每一行符值给一个字符串
fis = new FileInputStream("C:\\myfile.txt");//由于上面的dis.readLine()将文件读完了,所以要从新初始化一遍
dis = new DataInputStream(fis);
String s[] = new String[enter_count];
i = 0;
while(dis.available()!=0){
s[i] = dis.readLine();
s1[i]=s[i];
i++;
}
dis.close();
...全文
381 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
heavyuser 2008-03-19
  • 打赏
  • 举报
回复
楼主可以改用ArrayList来存储读到的文件,因为可以不用定义数组大小。
kanebluba 2008-03-19
  • 打赏
  • 举报
回复
在BufferedReader 前先用FileReader,判断是不是末尾(也就是代替你的DataInputStream的available的用法)用 BufferedReader 对象.readLine()!=null 来判断
刘彬彬 2008-03-19
  • 打赏
  • 举报
回复
BufferedReader in
= new BufferedReader(new FileReader("C:\\myfile.txt");
用这行替代你原先的代码就OK了!
hmsuccess 2008-03-19
  • 打赏
  • 举报
回复
你可以用

while((str=dis.readline)!=null){
s[i] = dis.readLine();
s1[i]=s[i];
i++;

}

62,623

社区成员

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

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