I have the following code in Netbeans 7.1.2:
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filename));
bos.write(newRawData);
bos.close();
A warning suggests that I “convert to try-with-resources.” When I choose to do this, my code becomes:
try (BufferedOutputStream bufferedFos = new BufferedOutputStream(new FileOutputStream(filename))) {
bufferedFos.write(newRawData);
}
This looks similar to the syntax for using(…) in C#… do they work the same way? Is there any downside to using this second format? I’m worried about the absence of bos.close();, but is it simply not necessary with this format?
This was a new syntax that was introduced in Java 7, which takes care of closing any resources you specify when declaring the
try(...)statement. More info can be found here.So no, you don’t have to do a
bos.close(), it is performed by Java. You can just sit back and relax.The only downside is that your code works with Java 7+ only.