All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.zandero.ffpojo.util.FileUtil Maven / Gradle / Ivy

package com.zandero.ffpojo.util;

import java.io.IOException;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.channels.FileChannel.MapMode;
import java.util.ArrayList;
import java.util.List;

public class FileUtil {

	public static List mapFileUsingMappedByteBuffers(FileChannel channel, MapMode mode, int pageSize) throws IOException {
		List buffers = new ArrayList();
		long channelSize = channel.size();
		long mappingStart = 0;
		int mappingSize = 0;
		for (long i = 0; mappingStart + mappingSize < channelSize; i++) {
			if ((channelSize / pageSize) == i) {
				mappingSize = (int) (channelSize - i * pageSize);
			} else {
				mappingSize = pageSize;
			}
			mappingStart = i * pageSize;
			MappedByteBuffer pagina = channel.map(mode, mappingStart, mappingSize);
			buffers.add(pagina);
		}
		return buffers;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy