如何在try catch中使用BufferedReader?

时间:2017-03-15 02:38:58

标签: java bufferedreader

我一直在尝试使用bufferedreader几次,但每次出现一些表单错误。这是“不是声明”和“预期”也是“不试试”的时间。我在try(bufferedreader)行的行中不断出错。我使用这个正确吗?我只是试一试,不太确定它是如何工作的。从在线资源我一直在看我的代码看起来很好。但是当我自己运行它时会给我错误。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;


public class Problem2 {
    public static void main(String [] args) {
        if(args.length != 1){
            System.out.println("Please enter a txt file");
        }
        else{
            String s;
            try (BufferedReader br = new BufferedReader(New FileReader(args[0]))) {
                while ( (s = br.readLine()) != null) {
                    String[] words = s.split("[^a-zA-Z0-9]+");
                    for(int i = 0; i < words.length; i++){
                        //code
                        }
                    }
                }
                br.close();
            }
            catch (FileNotFoundException ex){
                System.out.println(ex);
            }
            catch (IOException ex){
                System.out.println(ex);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

1)错误很简单,首先你应该使用new FileReader(小写n)而不是New FileReader(大写N)。

2)在将else处理程序附加到catch块之前,您已关闭try块。

我现在已经纠正了这两个问题,下面的代码应该编译。

if(args.length != 1){
     System.out.println("Please enter a txt file");
}
else{
    String s;
    try (BufferedReader br = new BufferedReader(new FileReader(args[0]))) {
      while ( (s = br.readLine()) != null) {
         String[] words = s.split("[^a-zA-Z0-9]+");
         for(int i = 0; i < words.length; i++){
           //code
         }
      }
      br.close();
    }catch (FileNotFoundException ex){
         System.out.println(ex);
    }
    catch (IOException ex){
        System.out.println(ex);
    }
}