BufferedReader fileReader = null;
try {
fileReader = new BufferedReader(new FileReader(filedName));
String line = null;
//filedDateSum = fileReader.read();
jProgressBar.setMinimum(0);
jProgressBar.setMaximum(filedDateSum );
while((line = fileReader.readLine())!= null){      }filedDateSum = fileReader.read();我一调用这句话 结果有两个:
1  我第一次读取正常  在次读取就会出现读取上次结果如 第一次读取 50条  再次读取(本应该是30)但是还会读取50
2  第一次读取数据正常 如 2009 正常  再次读取 出现 009 
如上
我调用这句话的意识就是要取得 我读入得文件的总数,但是出现以上两个问题 期待高人帮忙解决

解决方案 »

  1.   

    BufferReader是带缓冲的读写,缓冲满了才读出来,所以你每次读到的大小是一样的,这是第一个问题。
    由于带有缓冲功能,所以在读最后一点(或其它)时,没有缓冲满,关闭连接后一样写出缓冲池中的所有内容,但是缓冲没满的地方用默认内容替代了,所以你的第二个问题读取的内容有问题了。
    不知道你想要文件的大小还是什么。要是想知道文件大小,还是用字节流吧。
      

  2.   

    我想要文件里的总行数 我是csv格式的文件 
    比如我有 30条数据 我就想要这30 
    能告诉我怎么办到吗?
      

  3.   

    while((line = fileReader.readLine())!= null){
    filedDateSum ++;
     }
    filedDateSum  这个是我要求的总数
    while((line = fileReader.readLine())!= null){ }
    再来一个是我具体要做的事情了 
    为什么我的只能执行一遍while 我要执行两边怎么办呢?
      

  4.   

    没看懂,这句话什么意思啦
    jProgressBar.setMinimum(0); 
    我还没用过这个方法,麻烦说一下?