InputStreams work on bytes, not chars. If you want chars, you need to wrap your InputStream in an InputStreamReader. As you can see from the API docs for the read() method, it returns -1 when the end...