青岛广告设计与制作公司/seo工作流程
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
out.put((byte)'x');
System.out.println("Finished writing");
for(int i = length/2; i
System.out.print((char)out.get(i));
}
}
为 了能以读写的方式打开文件,我们从RandomAccessFile入手。拿到channel之后,我们用map( )方法生成了一个MappedByteBuffer。这是一种特殊的"direct buffer"。注意,你必须指明,它是从文件的哪个位置开始映射的,映射的范围又有多大;也就是说,它还可以映射一个大文件的某个小片断。
MappedByteBuffer是ByteBuffer的派生类,因此它具备了ByteBuffer的所有方法。这里只简单地演示了一下put( )和get( )方法,除此之外,你还可以使用asCharBuffer( )之类的方法。
上述例程创建了一个128MB的文件,或许
相关文档:
有600个苹果,10个盒子,要求把600个苹果分装到10个盒子里。如果有人来买苹果随便说出一个数,直接拿这些盒子组装一下就可以给他不用拆分盒子。请问这10个盒子应该分别装多少苹果?
代码如下
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int box[] = ......
一、Java运行时的两种核心机制
(1)Java虚拟机(Java Virtual Machine)
用来处理Java源文件编译后的字节码,屏蔽底层运行平台的差异,实现“一次编译,随处执行”,而且不同的运行� ......
这里对于几个基本的概念 URL TCP UDP Socket 就不加说明了,这里仅仅是记录一些学习日志备忘。
1:如何定义相对资源
假设有如下两个资源 :
http://www.gamelan.com/pages/Gamelan.game.html
http://www.gamelan.com/pa ......
《java语言程序设计(一)》2009年自学考试大纲第1章
www.wesiedu.com 2009-5-5 在线模拟考场
二、课程内容与考核目标
第1章 Java语言基础
(一)课程内容
1.1 Java语言的特点
1.2 Java应用程序和小应用程序
1.3 Java程序的开发过程
1.4标识符和关键字
l.5基本数据类型
1.5.1 逻辑类型
1 ......
《java语言程序设计(一)》2009年自学考试大纲第7章
www.wesiedu.com 2009-5-5 在线模拟考场
第7章 图形、图像与多媒体
(一)课程内容
7.1 绘图基础
7.1.1 Graphics类的基本功能
7.1.2字型和颜色
7.1.3绘图模式
7.2绘图
7.2.1 G忸phics类的绘图方法
7.2.2 Gmphics2D类的绘图方法
7.3图 ......