public int read() throws IOException {
			if (buffer == null || bufferCounter == buffer.length) {
				if (eof) {
					return -1;
				}
				acquire();
				if (buffer.length == 0) {
					buffer = null;
					return -1;
				}
				bufferCounter = 0;
			}
			return buffer[bufferCounter++];
		}