code: private static byte[] getByteArrayFromStream(InputStream bais) throws IOException
  	{
  		int length = (int) BDecoder.getNumberFromStream(bais, ':');
  
  		if (length < 0)
  		{
  			return null;
  		}
  
  		byte[] tempArray = new byte[length];
  		int count = 0;
  		int len = 0;
  		// get the string
  		while (count != length && (len = bais.read(tempArray, count, length - count)) > 0)
  		{
  			count += len;
  		}
  
  		if (count != tempArray.length)
  		{
  			throw (new IOException("BDecoder::getByteArrayFromStream: truncated"));
  		}
  
  		return tempArray;
  	}
docs: /*
  解析重点