title: InputStream and OutputStream abstract methods
body: <p>I've been exploring the java.io package a lot lately, and I've been wondering where can I find the exact processes that the abstract classes inside InputStream and OutputStream do.</p>
  
  <p>I'm dazzled because, at least according to the source code, the core methods are all abstract (e.g. <code>InputStream.read()</code> and <code>OutputStream.write(int b)</code>). I'm especially concerned by the close methods, whose javadocs explicitly say they do nothing:</p>
  
  <blockquote>
    <p>Closes this input stream and releases any system resources associated with the stream.  </p>
    
    <p>The <code>close</code> method of <code>InputStream</code> does nothing.</p>
  </blockquote>
  
  <p>Well, input streams obviously write while output streams read, and definitely <code>close()</code> has to do the flushing and resource releasing.</p>
  
  <p>Somebody able to give me an explanation?</p>