我有下面的代码:如何关闭嵌套的I/O流在Java中
try{
fileOutputStream = new FileOutputStream(downloadFile1);
outputStream1 = new BufferedOutputStream(fileOutputStream);
boolean success = ftpclient.retrieveFile(completePath.get(i), outputStream1);
if (success) {
System.out.println(completePath.get(1)+" downloaded!");
}
}finally {
if (outputStream1!=null) outputStream1.close();
if(fileOutputStream!=null) fileOutputStream.close();
}
的IntelliJ是给错误FileOutputStream中需要过于封闭。
而如果我在改变流收盘顺序finally块
finally {
if(fileOutputStream!=null) fileOutputStream.close();
if (outputStream1!=null) outputStream1.close();
}
那么有没有错误,但由于流被关闭未来的文件没有完全下载。
有人可以建议正确的方法来做到这一点?
尝试用资源? – Eugene
谢谢@eugene,你的建议确实奏效。使用试用资源似乎是一种更简单的方法。 – avi
同样的事情是在答案建议,请接受它的情况下,帮助 – Eugene