public String readString(int sz) throws IOException {
		if (sz == 0) return null;
		byte[] buf = new byte[sz];
		int i = 0;
		for (; i<sz; i++) {
			int b = read();
			if (b == 0) break;
			buf[i] = (byte)b;
		}
		if (i == 0) return null;
		return new String(buf, 0, i);
	}