在 java 中,可能很容易需要做一些事情,例如实例化一个 BufferedWriter 对象。这可以通过以下方式完成:
File outFile = new File("myTestFile.txt");
BufferedWriter w = null;
try { w = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8")); }
catch (FileNotFoundException|UnsupportedEncodingException e) { System.out.println(e.getMessage()); }
w.write("Test string");
w.newLine();
请注意 w 在 try-catch 块之前声明。这样做是为了在 try-catch 之后使用变量在适当的范围内。它使用空指针初始化,否则像 netbeans 这样的 IDE 会警告该变量可能尚未分配。但是,IDE 仍然抱怨当您到达 w.write() 时,w 可能有一个空值。这很有意义,因为 try 块可能会失败!
有没有一种更优雅、更明智的方法来做到这一点,并且不会导致像我的 IDE 上面提醒我的那样的逻辑问题?
我意识到我可以将 w 所做的一切都包装在 try 块中,但这对我的任务来说是不可行的。如果还有其他选择,我还能如何初始化 w?
谢谢!