public synchronized byte[] getData(){
		byte[] data = new byte[length];
		for(Integer offset : this.blocks.keySet()){
			Block b = this.blocks.get(offset);
			if(b == null)
				continue;
			byte[] bdata = b.getData();
			for(int i = 0; i < b.getLength() && offset + i < this.length; i++){
				data[offset+i] = bdata[i];
			}
		}
		return data;
	}