code: private static long getNumberFromStream(InputStream bais, char parseChar) throws IOException
  	{
  		int length = 0;
  
  		// place a mark
  		bais.mark(Integer.MAX_VALUE);
  
  		int tempByte = bais.read();
  		while ((tempByte != parseChar) && (tempByte >= 0))
  		{
  			tempByte = bais.read();
  			length++;
  		}
  
  		// are we at the end of the stream?
  		if (tempByte < 0)
  		{
  			return -1;
  		}
  
  		// reset the mark
  		bais.reset();
  
  		// get the length
  		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;
  		}
  
  		// jump ahead in the stream to compensate for the :
  		bais.skip(1);
  
  		// return the value
  		return Long.parseLong(new String(tempArray));
  	}
docs: /*
  解析重点