各位高手,我是一个新手,劳烦各位帮个忙阿? 我有一个问题急需请教,谢谢了! 
我用readline()读取一个文件的内容时,其中有一行出现异常, 
我想跳过异常行,继续读下一行,能实现吗? 怎么实现阿?

解决方案 »

  1.   

    比如:有一个文件test.txt有3行,
    1行
    2行
    3行
    当第2行编码不识别时,我像下面这样写的话,程序就死循环,始终是读第2行,
    我的目的是:如果第2行有异常,我就忽视,继续读第3行,该如何改啊?
    for(int i=0;i<10;){
    //10表示行数;
    try{
    String line = bufferreader.readLine();
    }catch(IOException e){
    continue;
    }
    if (line == null){
    break;
    }
      

  2.   

    这代码编译能过?
    if (line == null){ 
    break; 

    在try中申明的变量,这边还没超过作用域?
      

  3.   

    用for循环不行吧,你怎么能指定循环次数呢!
      

  4.   


    break会跳出最靠近它的for,while,do-while,switch
      

  5.   


    自己改成while(true)......=,=
      

  6.   

    我说的是line这个变量,应该是不能解析,未申明。
      

  7.   

    那你把 String line = null;写到最外面
      

  8.   

    我只能跟贴阿?不能修改之前发的帖子阿?
    我修改一下吧,以免引起误会。
    for(int i=0;i <10;){ 
    //10表示行数; 
    String line=null;
    try{ 
    line = bufferreader.readLine(); 
    }catch(IOException e){ 
    continue; 

    if (line == null){ 
    break; 
    } 这段代码,我执行过,在文件不发生异常是好用的。
      

  9.   

    那肯定的,确实会出现你说的:因为出现异常,bufferreader.readLine();这句话并没有执行成功,也就是说下一次循环,它还会读第2行出现异常的那行,我不知道你这怎么会出现异常的,不知道如何能跳过已经是异常的那一行,因为即使再怎么执行bufferreader.readLine()跳到下一行都是徒劳!等高人!
      

  10.   

    如果出现异常用continue 跳过那一条看行不
      

  11.   


    那就不要用readLine方法了,直接用skip方法忽略一部分内容,
    比如:
    try{ 
    line = bufferreader.readLine(); 
    }catch(IOException e){ 
    bufferreader.skip(16L);
    continue; 

      

  12.   

    那我怎么判断skip()多少个才能skip()这一行呢?
      

  13.   

    用continue好点吧,它主要用来循环的。
      

  14.   

    用RandomAccessFile吧,我一直都用它。
    RandomAccessFile file = new RandomAccessFile(filename, "rw");
    String content = null;
    while((content = file.readline) != null) {
        ....
    }
    file.close();
      

  15.   

    try{ 
    String line = bufferreader.readLine(); 
    }catch(IOException e){ 
    continue; 

    if (line == null){ 
    break;