日期:2014-05-20  浏览次数:20694 次

BufferedReader与DataInputStream的问题
因为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();

------解决方案--------------------
楼主可以改用ArrayList来存储读到的文件,因为可以不用定义数组大小。
------解决方案--------------------
你可以用
Java code

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

}

------解决方案--------------------
BufferedReader in
= new BufferedReader(new FileReader("C:\\myfile.txt"); 
用这行替代你原先的代码就OK了!

------解决方案--------------------
在BufferedReader 前先用FileReader,判断是不是末尾(也就是代替你的DataInputStream的available的用法)用 BufferedReader 对象.readLine()!=null 来判断