本人需要写一个程序读取.dat文件。该.dat文件的内容是一些log。读取部分的代码主要部分如下:File fToBeProcessed = new File(filesInChild[j].toString()); //设置源文件……FileInputStream fr = new FileInputStream(fToBeProcessed);
InputStreamReader isr = new InputStreamReader(fr);
BufferedReader br = new BufferedReader(isr);while((br.readLine())!=null){
System.out.println("br.readLine()="+br.readLine());
strFr=strFr+br.readLine();}
现在碰到的问题是:1.对某些.dat文件,能完全读到其中的内容,而对某些读不全或者读不出来。
2.当读文件失败的时候。如代码中加粗加红的部分,明明是null,却能走到println中。我现在怀疑是.dat文件的关系,但是还没有验证。请大侠帮助!

解决方案 »

  1.   

    br.readLine()
    调用了2次,所以会导致部分数据丢失String str = br.readLine();
    对str操作吧
      

  2.   

    楼上正解
    br.readLine() 会真正执行读取操作的。
      

  3.   

    while ((br.readLine())!=null) {
    String str = br.readLine();
    System.out.println("br.readLine()=" + str);
    strFr=strFr+str;
    }这样应该就好了,你每个while里面调用readLine()方法两次,奇数行打印在控制台,偶数行加到strFr里面,当然不全了。
      

  4.   

    String str;
    while ((str = br.readLine())!=null) {
    System.out.println("br.readLine()=" + str);
    strFr=strFr + str;
    }楼上的说错了,其实你每次while调用了三次,while条件里面还有一次,所以还不行。