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


Java MappedByteBuffer.get方法代码示例

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


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

示例1: readFile2Bytes

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
private static byte[] readFile2Bytes(final File file) {
    FileChannel fc = null;
    try {
        fc = new RandomAccessFile(file, "r").getChannel();
        int size = (int) fc.size();
        MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_ONLY, 0, size).load();
        byte[] data = new byte[size];
        mbb.get(data, 0, size);
        return data;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    } finally {
        CloseUtils.closeIO(fc);
    }
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:17,代码来源:CacheUtils.java

示例2: testWrite

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
/**
 * Maps blah file with a random offset and checks to see if data
 * written out to the file can be read back in
 */
private static void testWrite() throws Exception {
    StringBuilder sb = new StringBuilder();
    sb.setLength(4);

    for (int x=0; x<1000; x++) {
        try (RandomAccessFile raf = new RandomAccessFile(blah, "rw")) {
            FileChannel fc = raf.getChannel();

            long offset = generator.nextInt(1000);
            MappedByteBuffer b = fc.map(MapMode.READ_WRITE,
                                        offset, 100);

            for (int i=0; i<4; i++) {
                b.put(i, (byte)('0' + i));
            }

            for (int i=0; i<4; i++) {
                byte aByte = b.get(i);
                sb.setCharAt(i, (char)aByte);
            }
            if (!sb.toString().equals("0123"))
                throw new Exception("Write test failed");
        }
    }
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:30,代码来源:MapTest.java

示例3: readFile2BytesByMap

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
/**
 * 读取文件到字节数组中
 *
 * @param file 文件
 * @return 字符数组
 */
public static byte[] readFile2BytesByMap(File file) {
    if (!FileUtils.isFileExists(file)) return null;
    FileChannel fc = null;
    try {
        fc = new RandomAccessFile(file, "r").getChannel();
        int size = (int) fc.size();
        MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_ONLY, 0, size).load();
        byte[] result = new byte[size];
        mbb.get(result, 0, size);
        return result;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    } finally {
        CloseUtils.closeIO(fc);
    }
}
 
开发者ID:hoangkien0705,项目名称:Android-UtilCode,代码行数:24,代码来源:FileIOUtils.java

示例4: readFile2Bytes

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
private static byte[] readFile2Bytes(File file) {
    FileChannel fc = null;
    try {
        fc = new RandomAccessFile(file, "r").getChannel();
        int size = (int) fc.size();
        MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_ONLY, 0, size).load();
        byte[] data = new byte[size];
        mbb.get(data, 0, size);
        return data;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    } finally {
        CloseUtils.closeIO(fc);
    }
}
 
开发者ID:angcyo,项目名称:RLibrary,代码行数:17,代码来源:CacheUtils.java

示例5: readFile2BytesByMap

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
/**
 * 读取文件到字节数组中
 *
 * @param file 文件
 * @return 字符数组
 */
public static byte[] readFile2BytesByMap(final File file) {
    if (!isFileExists(file)) return null;
    FileChannel fc = null;
    try {
        fc = new RandomAccessFile(file, "r").getChannel();
        int size = (int) fc.size();
        MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_ONLY, 0, size).load();
        byte[] result = new byte[size];
        mbb.get(result, 0, size);
        return result;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    } finally {
        CloseUtils.closeIO(fc);
    }
}
 
开发者ID:Wilshion,项目名称:HeadlineNews,代码行数:24,代码来源:FileIOUtils.java

示例6: toBytes

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
/**
 * file path to
 *
 * @param filepath
 * @param sizes
 * @return
 */
public static List<byte[]> toBytes(String filepath, int[] sizes) {
    List<byte[]> result = new ArrayList<byte[]>();
    try {
        RandomAccessFile randomAccessFile = new RandomAccessFile(filepath, "r");
        MappedByteBuffer buffer = randomAccessFile.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, randomAccessFile.length());

        if (sizes != null && sizes.length > 0) {
            for (int size : sizes) {
                byte[] r = new byte[size];
                buffer.get(r);//fill buffer
            }
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
    return result;
}
 
开发者ID:alibaba,项目名称:LuaViewPlayground,代码行数:26,代码来源:ChannelTools.java

示例7: readFile2BytesByMap

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
/**
 * 读取文件到字节数组中
 *
 * @param file 文件
 * @return 字符数组
 */
public static byte[] readFile2BytesByMap(final File file) {
	if (!isFileExists(file)) {
		return null;
	}
	FileChannel fc = null;
	try {
		fc = new RandomAccessFile(file, "r").getChannel();
		int size = (int) fc.size();
		MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_ONLY, 0, size).load();
		byte[] result = new byte[size];
		mbb.get(result, 0, size);
		return result;
	} catch (IOException e) {
		e.printStackTrace();
		return null;
	} finally {
		CloseUtils.closeIO(fc);
	}
}
 
开发者ID:MobClub,项目名称:BBSSDK-for-Android,代码行数:26,代码来源:FileIOUtils.java

示例8: testRead

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
/**
 * Maps blah file with a random offset and checks to see if read
 * from the ByteBuffer gets the right line number
 */
private static void testRead() throws Exception {
    StringBuilder sb = new StringBuilder();
    sb.setLength(4);

    for (int x=0; x<1000; x++) {
        try (FileInputStream fis = new FileInputStream(blah)) {
            FileChannel fc = fis.getChannel();

            long offset = generator.nextInt(10000);
            long expectedResult = offset / CHARS_PER_LINE;
            offset = expectedResult * CHARS_PER_LINE;

            MappedByteBuffer b = fc.map(MapMode.READ_ONLY,
                                        offset, 100);

            for (int i=0; i<4; i++) {
                byte aByte = b.get(i);
                sb.setCharAt(i, (char)aByte);
            }

            int result = Integer.parseInt(sb.toString());
            if (result != expectedResult) {
                err.println("I expected "+expectedResult);
                err.println("I got "+result);
                throw new Exception("Read test failed");
            }
        }
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:34,代码来源:MapTest.java

示例9: insertTagAndShiftViaMappedByteBuffer

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
/**
 * Insert new metadata into file by using memory mapped file
 * <p>
 * But this is problematic on 32bit systems for large flac files may not be able to map a contiguous address space large enough
 * for a large audio size , so no longer used
 *
 * @param tag
 * @param mappedFile
 * @param fc
 * @param targetSizeBeforeAudioData
 * @param totalTargetSize
 * @param blockInfo
 * @param flacStream
 * @param neededRoom
 * @param availableRoom
 * @throws IOException
 * @throws UnsupportedEncodingException
 */
private void insertTagAndShiftViaMappedByteBuffer(Tag tag, MappedByteBuffer mappedFile, FileChannel fc, long targetSizeBeforeAudioData, long totalTargetSize, MetadataBlockInfo blockInfo, FlacStreamReader flacStream, int neededRoom, int availableRoom) throws IOException, UnsupportedEncodingException {
    //Find end of metadata blacks (start of Audio)
    int currentEndOfFilePosition = safeLongToInt(fc.size());
    /*
     * First shift data to the 'right' of the tag to the end of the file, whose position is currentEndOfTagsPosition
     */
    int currentEndOfTagsPosition = safeLongToInt((targetSizeBeforeAudioData - FlacTagCreator.DEFAULT_PADDING) - neededRoom + availableRoom);
    int lengthDiff = safeLongToInt(totalTargetSize - currentEndOfFilePosition);
    final int BLOCK_SIZE = safeLongToInt(TagOptionSingleton.getInstance().getWriteChunkSize());
    int currentPos = currentEndOfFilePosition - BLOCK_SIZE;
    byte[] buffer = new byte[BLOCK_SIZE];
    for (; currentPos >= currentEndOfTagsPosition; currentPos -= BLOCK_SIZE) {
        mappedFile.position(currentPos);
        mappedFile.get(buffer, 0, BLOCK_SIZE);
        mappedFile.position(currentPos + lengthDiff);
        mappedFile.put(buffer, 0, BLOCK_SIZE);
    }

    /*
     * Final movement of start bytes. This also covers cases where BLOCK_SIZE is larger than the audio data
     */
    int remainder = (currentPos + BLOCK_SIZE) - currentEndOfTagsPosition;
    if (remainder > 0) {
        mappedFile.position(currentEndOfTagsPosition);
        mappedFile.get(buffer, 0, remainder);
        mappedFile.position(currentEndOfTagsPosition + lengthDiff);
        mappedFile.put(buffer, 0, remainder);
    }

    DirectByteBufferUtils.release(mappedFile);

    /* Now overwrite the tag */
    writeTags(tag, fc, blockInfo, flacStream);
}
 
开发者ID:GlennioTech,项目名称:MetadataEditor,代码行数:53,代码来源:FlacTagWriter.java

示例10: LoadPathNodeFile

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
private void LoadPathNodeFile(byte rx,byte ry)
{
	String fname = "./data/pathnode/"+rx+"_"+ry+".pn";
	short regionoffset = getRegionOffset(rx,ry);
	_log.info("PathFinding Engine: - Loading: "+fname+" -> region offset: "+regionoffset+"X: "+rx+" Y: "+ry);
	File Pn = new File(fname);
	int node = 0,size, index = 0;
	try {
        // Create a read-only memory-mapped file
        FileChannel roChannel = new RandomAccessFile(Pn, "r").getChannel();
		size = (int)roChannel.size();
		MappedByteBuffer nodes;
		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
			nodes = roChannel.map(FileChannel.MapMode.READ_ONLY, 0, size).load();
		else
			nodes = roChannel.map(FileChannel.MapMode.READ_ONLY, 0, size);

		// Indexing pathnode files, so we will know where each block starts
		IntBuffer indexs = IntBuffer.allocate(65536);

		while(node < 65536)
		{
			byte layer = nodes.get(index);
	        indexs.put(node, index);
			node++;
			index += layer*10+1;
		}
		_pathNodesIndex.put(regionoffset, indexs);
		_pathNodes.put(regionoffset, nodes);
	} catch (Exception e)
	{
		e.printStackTrace();
		_log.warning("Failed to Load PathNode File: "+fname+"\n");
    }

}
 
开发者ID:L2jBrasil,项目名称:L2jBrasil,代码行数:38,代码来源:GeoPathFinding.java

示例11: getBytesFromFile

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
private byte[] getBytesFromFile(String path) throws Throwable {
    FileChannel channel = new RandomAccessFile(path, "r").getChannel();
    MappedByteBuffer buffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size()).load();
    byte[] bytes = new byte[(int) channel.size()];
    if (buffer.hasRemaining()) {
        buffer.get(bytes, 0, buffer.remaining());
    }
    channel.close();
    return bytes;
}
 
开发者ID:ZhangJiupeng,项目名称:Gospy,代码行数:11,代码来源:FileFetcher.java

示例12: mmap_read

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
static void mmap_read() throws Exception {
    RandomAccessFile file = new RandomAccessFile("/dev/shm/cache", "rw");
    MappedByteBuffer in = file.getChannel().map(FileChannel.MapMode.READ_WRITE, 0, 1024);
    byte[] arr = new byte[128];
    in.get(arr);
    System.out.println("mmap: " + new String(arr));
    file.close();
}
 
开发者ID:vitaly-chibrikov,项目名称:otus_java_2017_10,代码行数:9,代码来源:Trace.java

示例13: get

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
synchronized void get(long position, byte[] chars) {
    MappedByteBuffer buffer = dumpBuffer[getBufferIndex(position)];
    buffer.position(getBufferOffset(position));
    buffer.get(chars);
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:6,代码来源:HprofLongMappedByteBuffer.java

示例14: unpackBundleRaw

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
/**
 * unpack a xxx.lvbundle
 *
 * @param file
 * @param url
 * @return
 */
public static ScriptBundle unpackBundleRaw(boolean isBytecode, final String url, final File file) throws IOException {
    DebugUtil.tsi("luaviewp-unpackBundle-raw");

    if (file == null || url == null) {
        return null;
    }

    final ScriptBundle scriptBundle = new ScriptBundle();
    final FileInputStream inputStream = new FileInputStream(file);
    final MappedByteBuffer buffer = inputStream.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, file.length());
    final String scriptBundleFolderPath = LuaScriptManager.buildScriptBundleFolderPath(url);

    scriptBundle.setUrl(url);
    scriptBundle.setBytecode(isBytecode);
    scriptBundle.setBaseFilePath(scriptBundleFolderPath);

    int fileNameLen = 0;
    int fileLen = 0;
    String fileNameStr = null;

    byte[] fileName, fileData, signData;
    int count = buffer.getInt();
    for (int i = 0; i < count; i++) {//all files
        fileNameLen = buffer.getInt();// get file name
        fileName = new byte[fileNameLen];
        buffer.get(fileName);

        fileLen = buffer.getInt();// get file data
        fileData = new byte[fileLen];
        buffer.get(fileData);

        if (!isBytecode) {//非二进制的还有sign的data
            fileLen = buffer.getInt();
            signData = new byte[fileLen];
            buffer.get(signData);
        } else {
            signData = null;
        }

        fileNameStr = new String(fileName);
        if (fileNameStr == null || fileNameStr.indexOf("../") != -1) {
            return null;
        }

        scriptBundle.addScript(new ScriptFile(url, scriptBundleFolderPath, fileNameStr, fileData, signData));
    }

    if (inputStream != null) {
        try {
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    DebugUtil.tei("luaviewp-unpackBundle-raw");

    return scriptBundle;
}
 
开发者ID:alibaba,项目名称:LuaViewPlayground,代码行数:67,代码来源:ScriptBundleUnpackDelegate.java

示例15: LoadPathNodeFile

import java.nio.MappedByteBuffer; //导入方法依赖的package包/类
private void LoadPathNodeFile(byte rx, byte ry)
{
	if ((rx < L2World.TILE_X_MIN) || (rx > L2World.TILE_X_MAX) || (ry < L2World.TILE_Y_MIN) || (ry > L2World.TILE_Y_MAX))
	{
		_log.warning("Failed to Load PathNode File: invalid region " + rx + "," + ry + Config.EOL);
		return;
	}
	final short regionoffset = getRegionOffset(rx, ry);
	final File file = new File(Config.PATHNODE_DIR, rx + "_" + ry + ".pn");
	_log.info("Path Engine: - Loading: " + file.getName() + " -> region offset: " + regionoffset + " X: " + rx + " Y: " + ry);
	int node = 0, size, index = 0;
	
	// Create a read-only memory-mapped file
	try (RandomAccessFile raf = new RandomAccessFile(file, "r");
		FileChannel roChannel = raf.getChannel())
	{
		size = (int) roChannel.size();
		MappedByteBuffer nodes;
		if (Config.FORCE_GEODATA)
		{
			// it is not guarantee, because the underlying operating system may have paged out some of the buffer's data
			nodes = roChannel.map(FileChannel.MapMode.READ_ONLY, 0, size).load();
		}
		else
		{
			nodes = roChannel.map(FileChannel.MapMode.READ_ONLY, 0, size);
		}
		
		// Indexing pathnode files, so we will know where each block starts
		final IntBuffer indexs = IntBuffer.allocate(65536);
		
		while (node < 65536)
		{
			final byte layer = nodes.get(index);
			indexs.put(node++, index);
			index += (layer * 10) + 1;
		}
		_pathNodesIndex.put(regionoffset, indexs);
		_pathNodes.put(regionoffset, nodes);
	}
	catch (Exception e)
	{
		_log.log(Level.WARNING, "Failed to Load PathNode File: " + file.getAbsolutePath() + " : " + e.getMessage(), e);
	}
}
 
开发者ID:rubenswagner,项目名称:L2J-Global,代码行数:46,代码来源:GeoPathFinding.java


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