当前位置: 首页>>代码示例>>Java>>正文


Java MappedByteBuffer.order方法代码示例

本文整理汇总了Java中java.nio.MappedByteBuffer.order方法的典型用法代码示例。如果您正苦于以下问题:Java MappedByteBuffer.order方法的具体用法?Java MappedByteBuffer.order怎么用?Java MappedByteBuffer.order使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.nio.MappedByteBuffer的用法示例。


在下文中一共展示了MappedByteBuffer.order方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: if

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
private ccrcrr bь044C044C044C044C044C(int i) throws IOException, NotEnoughHapticBytesAvailableException {
    try {
        this.bЭ042DЭЭЭ042D.startTiming();
        if (i < this.b042D042DЭЭЭ042D) {
            int i2 = this.bЭЭ042DЭЭ042D + i;
            int bщ04490449щщщ = bщ04490449щщщ();
            int i3 = (i + 1024) + bщ04490449щщщ <= this.b042D042DЭЭЭ042D ? bщ04490449щщщ + 1024 : this.b042D042DЭЭЭ042D - i;
            try {
                if (i + i3 > this.bЭЭЭ042D042DЭ) {
                    throw new NotEnoughHapticBytesAvailableException("Not enough bytes available yet.");
                } else {
                    MappedByteBuffer map = this.bЭЭ042DЭ042DЭ.map(MapMode.READ_ONLY, (long) i2, (long) i3);
                    if (map != null) {
                        map.order(ByteOrder.BIG_ENDIAN);
                        ccrcrr rrrrrr_ccrcrr = new ccrcrr();
                        rrrrrr_ccrcrr.mMappedByteBuffer = map;
                        if (((bц04460446ц04460446() + bцц0446ц04460446) * bц04460446ц04460446()) % bццц044604460446 != b044604460446ц04460446) {
                            b04460446цц04460446 = bц04460446ц04460446();
                            b044604460446ц04460446 = 10;
                        }
                        rrrrrr_ccrcrr.mHapticDataOffset = i;
                        return rrrrrr_ccrcrr;
                    }
                }
            } catch (Exception e) {
                throw e;
            }
        }
        return null;
    } catch (Exception e2) {
        throw e2;
    }
}
 
开发者ID:JackChan1999,项目名称:letv,代码行数:34,代码来源:MemoryAlignedFileReader.java

示例2: loadGeodataFile

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
public static boolean loadGeodataFile(byte rx, byte ry)
{
	String fname = "./data/geodata/"+rx+"_"+ry+".l2j";
	short regionoffset = (short)((rx << 5) + ry);
	_log.info("Geo Engine: - Loading: "+fname+" -> region offset: "+regionoffset+"X: "+rx+" Y: "+ry);
	File Geo = new File(fname);
	int size, index = 0, block = 0, flor = 0;
	FileChannel roChannel = null;
	try {
        // Create a read-only memory-mapped file
		roChannel = new RandomAccessFile(Geo, "r").getChannel();
		size = (int)roChannel.size();
		MappedByteBuffer geo;
		if (Config.FORCE_GEODATA) //Force O/S to Loads this buffer's content into physical memory.
			//it is not guarantee, because the underlying operating system may have paged out some of the buffer's data
			geo = roChannel.map(FileChannel.MapMode.READ_ONLY, 0, size).load();
		else
			geo = roChannel.map(FileChannel.MapMode.READ_ONLY, 0, size);
		geo.order(ByteOrder.LITTLE_ENDIAN);

		if (size > 196608)
		{
			// Indexing geo files, so we will know where each block starts
			IntBuffer indexs = IntBuffer.allocate(65536);
			while(block < 65536)
		    {
				byte type = geo.get(index);
		        indexs.put(block,index);
				block++;
				index++;
		        if(type == 0)
		        	index += 2; // 1x short
		        else if(type == 1)
		        	index += 128; // 64 x short
		        else
		        {
		            int b;
		            for(b=0;b<64;b++)
		            {
		                byte layers = geo.get(index);
		                index += (layers << 1) + 1;
		                if (layers > flor)
		                     flor = layers;
		            }
		        }
		    }
			_geodataIndex.put(regionoffset, indexs);
		}
		_geodata.put(regionoffset,geo);

		_log.info("Geo Engine: - Max Layers: "+flor+" Size: "+size+" Loaded: "+index);
    }
	catch (Exception e)
	{
		e.printStackTrace();
		_log.warning("Failed to Load GeoFile at block: "+block+"\n");
		return false;
    }
    return true;
}
 
开发者ID:L2jBrasil,项目名称:L2jBrasil,代码行数:61,代码来源:GeoEngine.java

示例3: LoadBIN

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
private boolean LoadBIN() throws IOException {
	boolean LoadOK = false;
	RandomAccessFile RF = null;
	
	try {
		if (_IPDatabasePath.length() > 0) {
			RF = new RandomAccessFile(_IPDatabasePath, "r");
			final FileChannel InChannel = RF.getChannel();
			final MappedByteBuffer _HeaderBuffer = InChannel.map(FileChannel.MapMode.READ_ONLY, 0, 64); // 64 bytes header
			
			_HeaderBuffer.order(ByteOrder.LITTLE_ENDIAN);
			
			_DBType = _HeaderBuffer.get(0);
			_DBColumn = _HeaderBuffer.get(1);
			_DBYear = _HeaderBuffer.get(2);
			_DBMonth = _HeaderBuffer.get(3);
			_DBDay = _HeaderBuffer.get(4);
			_DBCount = _HeaderBuffer.getInt(5); // 4 bytes
			_BaseAddr = _HeaderBuffer.getInt(9); // 4 bytes
			_DBCountIPv6 = _HeaderBuffer.getInt(13); // 4 bytes
			_BaseAddrIPv6 = _HeaderBuffer.getInt(17); // 4 bytes
			_IndexBaseAddr = _HeaderBuffer.getInt(21); //4 bytes
			_IndexBaseAddrIPv6 = _HeaderBuffer.getInt(25); //4 bytes
			
			_IPv4ColumnSize = _DBColumn << 2; // 4 bytes each column
			_IPv6ColumnSize = 16 + ((_DBColumn - 1) << 2); // 4 bytes each column, except IPFrom column which is 16 bytes
			
			// since both IPv4 and IPv6 use 4 bytes for the below columns, can just do it once here
			COUNTRY_POSITION_OFFSET = (COUNTRY_POSITION[_DBType] != 0) ? (COUNTRY_POSITION[_DBType] - 1) << 2 : 0;
			REGION_POSITION_OFFSET = (REGION_POSITION[_DBType] != 0) ? (REGION_POSITION[_DBType] - 1) << 2 : 0;
			CITY_POSITION_OFFSET = (CITY_POSITION[_DBType] != 0) ? (CITY_POSITION[_DBType] - 1) << 2 : 0;
			ISP_POSITION_OFFSET = (ISP_POSITION[_DBType] != 0) ? (ISP_POSITION[_DBType] - 1) << 2 : 0;
			PROXYTYPE_POSITION_OFFSET = (PROXYTYPE_POSITION[_DBType] != 0) ? (PROXYTYPE_POSITION[_DBType] - 1) << 2 : 0;
			
			COUNTRY_ENABLED = (COUNTRY_POSITION[_DBType] != 0) ? true : false;
			REGION_ENABLED = (REGION_POSITION[_DBType] != 0) ? true : false;
			CITY_ENABLED = (CITY_POSITION[_DBType] != 0) ? true : false;
			ISP_ENABLED = (ISP_POSITION[_DBType] != 0) ? true : false;
			PROXYTYPE_ENABLED = (PROXYTYPE_POSITION[_DBType] != 0) ? true : false;
			
			final MappedByteBuffer _IndexBuffer = InChannel.map(FileChannel.MapMode.READ_ONLY, _IndexBaseAddr - 1, _BaseAddr - _IndexBaseAddr); // reading indexes
			_IndexBuffer.order(ByteOrder.LITTLE_ENDIAN);
			int Pointer = 0;
			
			// read IPv4 index
			for (int x = 0; x < _IndexArrayIPv4.length; x++) {
				_IndexArrayIPv4[x][0] = _IndexBuffer.getInt(Pointer); // 4 bytes for from row
				_IndexArrayIPv4[x][1] = _IndexBuffer.getInt(Pointer + 4); // 4 bytes for to row
				Pointer += 8;
			}
			
			if (_IndexBaseAddrIPv6 > 0) {
				// read IPv6 index
				for (int x = 0; x < _IndexArrayIPv6.length; x++) {
					_IndexArrayIPv6[x][0] = _IndexBuffer.getInt(Pointer); // 4 bytes for from row
					_IndexArrayIPv6[x][1] = _IndexBuffer.getInt(Pointer + 4); // 4 bytes for to row
					Pointer += 8;
				}
			}
			
			if (_UseMemoryMappedFile) {
				CreateMappedBytes(InChannel);
			}
			else {
				DestroyMappedBytes();
			}
			LoadOK = true;
		}
	}
	catch(IOException Ex) {
		throw Ex;
	}
	finally {
		if (RF != null) {
			RF.close();
			RF = null;
		}
	}
	return LoadOK;
}
 
开发者ID:ip2location,项目名称:ip2proxy-java,代码行数:81,代码来源:IP2Proxy.java


注:本文中的java.nio.MappedByteBuffer.order方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。