@Override
	public int read(char[] cbuf, int off, int len) throws IOException
	{
		if (len == 0)
		{
			return 0;
		}

		int c = read();
		if (c == -1)
		{
			return -1;
		}
		int result = 0;
		do
		{
			cbuf[result + off] = (char) c;
			result++;
			c = read();
		}
		while (c != -1 && result < len);
		return result;
	}