public  double[] readData(){
		if( this.cur < 8)
		{
			return null;
		}
		double [] ddata = new double[this.cur/8];
		long l;
		int index = 0;
		for(int i = 0 ; i < ddata.length; i++)
		{ 
			l=data[index++];
			l&=0xff;
			l|=((long)data[index++]<<8);
			l&=0xffff;
			l|=((long)data[index++]<<16);
			l&=0xffffff;
			l|=((long)data[index++]<<24);
			l&=0xffffffffl;
	    	l|=((long)data[index++]<<32);
	    	l&=0xffffffffffl;

	    	l|=((long)data[index++]<<40);
	    	l&=0xffffffffffffl;
	    	l|=((long)data[index++]<<48);
	    	l&=0xffffffffffffffl;
	    	l|=((long)data[index++]<<56);
	    	ddata [i] = Double.longBitsToDouble(l);
		}
		int start = this.cur - this.cur%8;
		for( int i = 0; i < this.cur%8; i++)
		{
			this.data[i] = this.data[start+i];
		}
		this.cur %= 8;
		return ddata;
	}