isn't reading from InputStream e.g. System.in is a blocking call ?