]> source.dussan.org Git - poi.git/commitdiff
Close two more file-handles in Example FromHowTo
authorDominik Stadler <centic@apache.org>
Wed, 6 Apr 2016 19:50:20 +0000 (19:50 +0000)
committerDominik Stadler <centic@apache.org>
Wed, 6 Apr 2016 19:50:20 +0000 (19:50 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1738035 13f79535-47bb-0310-9956-ffa450edef68

src/examples/src/org/apache/poi/xssf/eventusermodel/examples/FromHowTo.java

index e82476eb3a5d249610a3c6f9bc9789105460a51b..88c5f68ca5db697992e221e9b32b24c4ba20b277 100644 (file)
@@ -40,35 +40,43 @@ import org.xml.sax.helpers.XMLReaderFactory;
 public class FromHowTo {
        public void processFirstSheet(String filename) throws Exception {
                OPCPackage pkg = OPCPackage.open(filename);
-               XSSFReader r = new XSSFReader( pkg );
-               SharedStringsTable sst = r.getSharedStringsTable();
-
-               XMLReader parser = fetchSheetParser(sst);
-
-               // To look up the Sheet Name / Sheet Order / rID,
-               //  you need to process the core Workbook stream.
-               // Normally it's of the form rId# or rSheet#
-               InputStream sheet2 = r.getSheet("rId2");
-               InputSource sheetSource = new InputSource(sheet2);
-               parser.parse(sheetSource);
-               sheet2.close();
+               try {
+                       XSSFReader r = new XSSFReader(pkg);
+                       SharedStringsTable sst = r.getSharedStringsTable();
+
+                       XMLReader parser = fetchSheetParser(sst);
+
+                       // To look up the Sheet Name / Sheet Order / rID,
+                       //  you need to process the core Workbook stream.
+                       // Normally it's of the form rId# or rSheet#
+                       InputStream sheet2 = r.getSheet("rId2");
+                       InputSource sheetSource = new InputSource(sheet2);
+                       parser.parse(sheetSource);
+                       sheet2.close();
+               } finally {
+                       pkg.close();
+               }
        }
 
        public void processAllSheets(String filename) throws Exception {
                OPCPackage pkg = OPCPackage.open(filename);
-               XSSFReader r = new XSSFReader( pkg );
-               SharedStringsTable sst = r.getSharedStringsTable();
-
-               XMLReader parser = fetchSheetParser(sst);
-
-               Iterator<InputStream> sheets = r.getSheetsData();
-               while(sheets.hasNext()) {
-                       System.out.println("Processing new sheet:\n");
-                       InputStream sheet = sheets.next();
-                       InputSource sheetSource = new InputSource(sheet);
-                       parser.parse(sheetSource);
-                       sheet.close();
-                       System.out.println("");
+               try {
+                       XSSFReader r = new XSSFReader(pkg);
+                       SharedStringsTable sst = r.getSharedStringsTable();
+
+                       XMLReader parser = fetchSheetParser(sst);
+
+                       Iterator<InputStream> sheets = r.getSheetsData();
+                       while (sheets.hasNext()) {
+                               System.out.println("Processing new sheet:\n");
+                               InputStream sheet = sheets.next();
+                               InputSource sheetSource = new InputSource(sheet);
+                               parser.parse(sheetSource);
+                               sheet.close();
+                               System.out.println("");
+                       }
+               } finally {
+                       pkg.close();
                }
        }