diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2011-05-21 21:39:18 +0300 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2011-05-21 21:39:18 +0300 |
commit | ed6c5bce7e7c3d8654120884ef9dee5039260521 (patch) | |
tree | 067e4b0bc1903e020c61ecc4f866c033c43cb107 /src/XZDecDemo.java | |
parent | b563eacd944c39d47cedd00d3d1a3a00fa5b64aa (diff) | |
download | xz-java-ed6c5bce7e7c3d8654120884ef9dee5039260521.tar.gz |
Fix a file descriptor leak in XZDecDemo.
Diffstat (limited to 'src/XZDecDemo.java')
-rw-r--r-- | src/XZDecDemo.java | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/XZDecDemo.java b/src/XZDecDemo.java index f1ba501..6876eea 100644 --- a/src/XZDecDemo.java +++ b/src/XZDecDemo.java @@ -32,17 +32,24 @@ class XZDecDemo { // Read from files given on the command line. for (int i = 0; i < args.length; ++i) { name = args[i]; - - // Since XZInputStream does some buffering internally - // anyway, BufferedInputStream doesn't seem to be - // needed here to improve performance. InputStream in = new FileInputStream(name); - // in = new BufferedInputStream(in); - in = new XZInputStream(in); - int size; - while ((size = in.read(buf)) != -1) - System.out.write(buf, 0, size); + try { + // Since XZInputStream does some buffering internally + // anyway, BufferedInputStream doesn't seem to be + // needed here to improve performance. + // in = new BufferedInputStream(in); + in = new XZInputStream(in); + + int size; + while ((size = in.read(buf)) != -1) + System.out.write(buf, 0, size); + + } finally { + // Close FileInputStream (directly or indirectly + // via XZInputStream, it doesn't matter). + in.close(); + } } } } catch (FileNotFoundException e) { |