title: 'fileInputStream' is not closed on exit.
body: <p>I have performed klocwork code analysis on my code.
  I am getting the following error
  I have closed the inputsream in finally
  Even then i am getting the error
  'fileInputStream' is not closed on exit. </p>
  
  <p>Following is the piece of code</p>
  
  <pre><code>    LOGGER.log(Level.INFO, "Inside unzipDownloadedFile method");
      File fileDirectory = new File(destDir);
      FileInputStream fileInputStream = null;
      // buffer for read and write data to file
      byte[] buffer = new byte[1024];
      ZipInputStream zipInputStream = null;
      File zipPath = new File(zipFilePath);
      FileOutputStream fileOutputStream = null;
      // create output directory if it doesn't exist
      if (!fileDirectory.exists()) {
          fileDirectory.mkdirs();
      }
      if (zipPath != null) {
          if (zipPath.exists()) {
              try {
                  fileInputStream = new FileInputStream(zipFilePath);
                  zipInputStream = new ZipInputStream(fileInputStream);
                  ZipEntry zipEntry = zipInputStream.getNextEntry();
                  while (zipEntry != null) {
                      String fileName = zipEntry.getName();
                      File newFile = new File(destDir + File.separator
                              + fileName);
                      // create directories for sub directories in zip
                      new File(newFile.getParent()).mkdirs();
                      fileOutputStream = new FileOutputStream(newFile);
                      int zipStream = 0;
                      while ((zipStream = zipInputStream.read(buffer)) &gt; 0) {
                          fileOutputStream.write(buffer, 0, zipStream);
                      }
                      fileOutputStream.close();
                      // close this ZipEntry
                      zipInputStream.closeEntry();
                      zipEntry = zipInputStream.getNextEntry();
                  }
                  fileInputStream.close();
              } catch (IOException ioException) {
                  ioException.printStackTrace();
              } finally {
                  try {
                      // close last ZipEntry
                      if (zipInputStream != null) {
                          zipInputStream.closeEntry();
                          zipInputStream.close();
                      }
                      if (fileInputStream != null) {
                          fileInputStream.close();
                      }
                      if (fileOutputStream != null) {
                          fileOutputStream.close();
                      }
                  } catch (IOException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
              }
          }
      }
  </code></pre>