我有一些Java代码,可以使用BufferedWriter将文本写入文件。如果我使用以下代码,则效果很好:
try(BufferedWriter bw = new BufferedWriter(new FileWriter(filePath)))
{
for(int i = 0; i < lines.length; i++)
{
bw.write(lines[i]);
System.out.println("Writing: " + lines[i]);
if(i != lines.length - 1) bw.newLine();
}
bw.flush();
bw.close();
}
catch(Exception ex)
{
}
如您所见,我在try语句中声明了“ bw”变量。但是,try-with-resource语句是使用Java的较新版本引入的,而该Java较新版本在需要代码的软件中不可用。
以下是我认为应具有相同结果但不使用try-with-resource语句的示例:
try
{
BufferedWriter bw = new BufferedWriter(new FileWriter(filePath));
for(int i = 0; i < lines.length; i++)
{
bw.write(lines[i]);
System.out.println("Writing: " + lines[i]);
if(i != lines.length - 1) bw.newLine();
}
bw.flush();
bw.close();
}
catch(Exception ex)
{
}
此代码清除文本文件中的所有内容,这与尝试将资源示例代码按预期方式写入文本文件不同。
有什么想法为什么会这样?干杯
答案 0 :(得分:0)
结果都是两个都抛出了一个异常,愚蠢的是我没有做任何事情,但是由于try-with-resource关闭了BufferedWriter,因此错误并没有停止功能...修复异常因此解决了问题。