title: IOException and NullPointerException from ObjectInputStream
body: <p>I'm writing a small program for an assignment and part of it involves reading from a file using ObjectInputStream. I've run into a brick wall because I keep getting errors when trying to close the file in the finally block as well as a NullPointerException but I cannot understand why. Any help is much appreciated! I have checked already and the file path is correct, so it is able to find the file. </p>
  
  <p>Example file:
  hello || apples, acai berry, bananas || shopping || 0.0005 || yes </p>
  
  <pre><code> public Disease[] readInCancers() {
      Disease[] cancerList = null;
      try {
          FileInputStream fis = new FileInputStream(myData);
          BufferedInputStream bis = new BufferedInputStream(fis);
          ois = new ObjectInputStream(bis);
          while(true) {
              Disease disease = null;
              try {
                  disease = (Disease)ois.readObject();
              } catch (EOFException eofx) {
                  break;
              }
              if (cancerList == null || cancerList.length == 0) {
                      cancerList = new Disease[1];
                      cancerList[0] = disease;
                  } else {
                      Disease[] newList = new Disease[cancerList.length + 1];
                      System.arraycopy(cancerList, 0, newList, 0, cancerList.length);
                      newList[cancerList.length] = disease;
                      cancerList = newList;
                  }
          }
      } catch (FileNotFoundException fnfx) {
          JOptionPane.showMessageDialog(null, "File could not be found");
      } catch (IOException iox) {
          JOptionPane.showMessageDialog(null, "Problem with reading from file");
      } catch (ClassNotFoundException cnfx) {
          JOptionPane.showMessageDialog(null, "Class could not be found");
      } catch (NullPointerException npx) {
          System.out.println("blah");
       } finally {
          try {
              ois.close();
          } catch (IOException iox) {
              JOptionPane.showMessageDialog(null, "Problem with closing file");
          }
      }
      return cancerList;
  }
  </code></pre>
  
  <p>When I run the program, it gives a NullPointerException at ois.close() as well as an IOException that produces the pop-up "Problem with reading from file".</p>
  
  <p>I have also tried changing how the file itself is structured, replaced the || (delimiters) with a word or even blank space but nothing changes. </p>