没有try方法IOException的BufferedWriter

时间:2018-10-10 14:51:22

标签: java try-catch ioexception bufferedwriter writer

我知道这个话题已经讨论了很多,并且我已经在这里读过很多帖子,但是我似乎还是有麻烦。

我的问题是我也是一个初学者,我不太了解ĸwork和try and catch函数的作用。

我一直在尝试向文件中写入一些字符串数组,但是它没有出现在其中,也没有在控制台中显示catch错误。我不想在这种情况下使用try方法,因为当我在其他地方不能使用为BufferedWriter声明的变量时,我只能使用try方法。否则,我会得到一个错误。

这是我的代码:

import java.io.*;
import java.util.*;
import java.lang.*;
public class FileWrit  {

    public static void main (String[] args){
        try(BufferedWriter writer = new BufferedWriter(new FileWriter("testing.txt"))) {
            String[] anything = new String[3];
            writer.write("anything");
            anything[0] = "case1";
            anything[1] = "This is 1.5";
            anything[2] = "Case 3, i do not know how to count";
            for(String mem: anything) {
                writer.append(mem);
            }
            writer.close();
        } catch(IOException e) {
            System.err.println("Idk when should this appear?");
        }
    }
}

1 个答案:

答案 0 :(得分:0)

对于问题的“无法在任何地方使用”部分,您可以在try catch块外部声明变量,而仅在内部分配它。您可以在其他任何要使用它的地方进行null检查,以确保没有问题,或者在catch块中为其分配另一个值。像这样:

public static void main(String[] args) {
 BufferedWriter writer;
 String[] anything;
 try {
  writer = new BufferedWriter(new FileWriter("testing.txt"))) {
  anything = new String[3];
  writer.write("anything");
  anything[0] = "case1";
  anything[1] = "This is 1.5";
  anything[2] = "Case 3, i do not know how to count";
  for (String mem: anything) {
   writer.append(mem);

  }
  writer.close();
 } catch (IOException e) {
  writer = null;
  e.printstacktrace();
 }
}
}


if(writer != null){
       System.out.println(writer);
}