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.

Reply via email to