title: How java.io.Buffer* stream differs from normal streams?
body: <p>1) How does buffered streams work in background, how do they differ from normal streams and what are the advantage(s) of using them?</p>
  
  <p>2) <code>DataInputStream</code> is also <em>Byte</em> based. But it is having methods to <code>readLine()</code>. What's the point in here?</p>