private int readTotal(byte[] buffer, int offset, int length, int total) throws IOException {
			int num;
			while((num = super.read(buffer, offset, length)) < length) {
				if(num < 0)
					return num;
				else
					return readTotal(buffer, offset + num, length - num, total + num);
			}
			return total + num;
		}