java 内存映射文件 (转) 大文件操作方式
内存映射文件(memory-mapped file)能让你创建和修改那些大到无法读入内存的文件。有了内存映射文件,你就可以认为文件已经全部读进了内存,然后把它当成一个非常大的数组来访问了。这种解决思路能大大简化修改文件的代码。下面就是一个简单的例子:
代码
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
public class LargeMappedFiles {
static int length = 0x8FFFFFF; // 128 Mb
public static void main(String[] args) throws Exception {
MappedByteBuffer out =
new RandomAccessFile("test.dat", "rw").getChannel()
.map(FileChannel.MapMode.READ_WRITE, 0, length);
for(int i = 0; i < length; i++)
out.put((byte)'x');
System.out.println("Finished writing");
for(int i = length/2; i < length/2 + 6; i++)
System.out.print((char)out.get(i));
}
}
<script type="text/javascript">render_code();</script>
为 了能以读写的方式打开文件,我们从RandomAccessFile入手。拿到channel之后,我们用map( )方法生成了一个MappedByteBuffer。这是一种特殊的"direct buffer"。注意,你必须指明,它是从文件的哪个位置开始映射的,映射的范围又有多大;也就是说,它还可以映射一个大文件的某个小片断。
MappedByteBuffer是ByteBuffer的派生类,因此它具备了ByteBuffer的所有方法。这里只简单地演示了一下put( )和get( )方法,除此之外,你还可以使用asCharBuffer( )之类的方法。
上述例程创建了一个128MB的文件,或许
相关文档:
自己收集的一些java处理类,供以后查询
package com.tools;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringHandler {
/******************************
* 功能:将IP地址转换为对应的整数
* 返回类型:long
******************************/
public static long getI ......
安装Java开发软件时,默认安装包含两个文件夹,一个JDK(Java开发工具箱),一个JRE(Java运行环境,内含JVM),其中JDK内另含一个JRE。如果只是运行Java程序,则JRE已足够;而JDK则只有开发人员才用到。
一、JVM内存分配设置
1. JVM内存分配设置的参数有四个:
-Xmx Java Heap最大值,默认值为物理内存的 ......
第5章图形界面设计(一)
(一)课程内容
5.1 图形界面设计基础
5.1.1 AWI’和Swing
5.1.2组件和容器
5.1.3事件驱动程序设计基础
5.2框架窗口 .
5.3标签、按钮和按钮事件
5.3.1 标签
5.3.2按钮和按钮事件处理
5.4面板
5.4.1 JPanel
5.4.2 JScrollPane
5.5布局设计
5.5.1 FlowI.ayout布局
5.5.2 BorderI.a ......
/*
本段代码在公司项目中实际远程调用第三方公司提供的C#开发WebService的示例
*/
/**
* 登录游戏
*
* @param paramPN
* @param paramTerraceID
* @param paramSvrID
*/
private String loginGame(String paramPN, HttpServletRequest req){
&n ......