Tom Hawtin wrote:
On 09/10/2013 19:00, Dr Heinz M. Kabutz wrote:
That way, the resources are closed in the reverse order in which they
are opened and an exception in the middle of the creation chain does not
prevent the earlier resources from being closed.
But there is only one resource.
File tzdb = new File(libDir, "tzdb.dat");
try (InputStream rawIn = new FileInputStream(tzdb)) {
DataInputStream dis = new DataInputStream(
new BufferedInputStream(rawIn, 32000)
);
But you've written it slightly differently from the original
try (DataInputStream dis = new DataInputStream(
new FileInputStream(new File(libDir, "tzdb.dat")))) {
Your code is also fine, as it isolates the resource that should be
closed should something go wrong during the initialization of the
DataInputStream / BufferedInputStream. Either of our solutions would be
good and it would just be a matter of how you'd like to scope the
various local variables.