我知道这个话题已经讨论了很多,并且我已经在这里读过很多帖子,但是我似乎还是有麻烦。
我的问题是我也是一个初学者,我不太了解ĸ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?");
}
}
}
答案 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);
}