Java 读取/写入文件时处理异常

Java 读取/写入文件时处理异常,java,Java,我正在尝试从文件中读取,但我不明白如何在使用try-catch块时执行此操作。。。如果发生了不好的事情,但执行这一行没有问题,我如何使它抛出异常:br.readLine()?它只是说br没有声明。如果我需要在不同的地方使用“br”和“bw”怎么办?我也要在那里申报吗 try { BufferedReader br = new BufferedReader(new FileReader(file)); BufferedWriter bw = new BufferedWriter(n

我正在尝试从文件中读取,但我不明白如何在使用try-catch块时执行此操作。。。如果发生了不好的事情,但执行这一行没有问题,我如何使它抛出异常:br.readLine()?它只是说br没有声明。如果我需要在不同的地方使用“br”和“bw”怎么办?我也要在那里申报吗

try {
    BufferedReader br = new BufferedReader(new FileReader(file));
    BufferedWriter bw = new BufferedWriter(new FileWriter(file));
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

br.readLine();

br在try的范围内声明,因此在捕获后消失。您要执行以下操作:

BufferedReader br = null;
BufferedWriter bw = null;
try {
    br = new BufferedReader(new FileReader(file));
    bw = new BufferedWriter(new FileWriter(file));
} catch (IOException e) {
    e.printStackTrace();
}
br.readLine();
注意,捕获之后可能会出现空指针,因此另一个选项是将br.readLine()写入try,如下所示:

try {
    BufferedReader br = new BufferedReader(new FileReader(file));
    BufferedWriter bw = new BufferedWriter(new FileWriter(file));
    br.readLine();
} catch (IOException e) {
    e.printStackTrace();
}

您已经在try块内声明了BufferedReader和BufferredWriter,并在try和catch外调用了br.readline(),因此它不知道在哪里声明了br。我有和上面相同的答案

try {
BufferedReader br = new BufferedReader(new FileReader(new File ("path_to_your_file_to read")));
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("path_to_your_file_to_write")));
br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader br = new BufferedReader(new FileReader(new File ("path_to_your_file_to read")));
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("path_to_your_file_to_write")));
br.readLine();
} catch (IOException e) {
e.printStackTrace();
}