- 浏览: 85462 次
- 性别:
- 来自: 西安
最新评论
-
xuhang1128:
good
Spring源码解析 BeanPostProcessor的实现 -
zhudaokun:
呵呵……好帖,收藏一下
Spring源码解析1 IOC容器的初始化
package com.io; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; public class LargeMappedFiles { /** * 内存映射文件允许我们创建和修改那些因为太大而不能放入内存的文件 */ static int length=0x8FFFFFF;//128MB public static void main(String[] args) throws IOException { //public abstract class MappedByteBufferextends ByteBuffer直接字节缓冲区,其内容是文件的内存映射区域。 //映射的字节缓冲区是通过 FileChannel.map 方法创建的。此类用特定于内存映射文件区域的操作扩展 ByteBuffer 类。 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("Finish writing"); for(int i=length/2;i<length/2+6;i++){ System.out.println((char)out.get(i)); } } }
package com.io; import java.io.*; import java.nio.IntBuffer; import java.nio.channels.FileChannel; public class MappedIO { /** * 测试内存映射文件的访问速度 */ private static int numofints=4000000; private static int numofubuffints=200000; private abstract static class Tester{ private String name; public Tester(String name){ this.name=name; } //runTest()被用做是一种模板方法,为匿名内部子类中定义的test()的各种实现创建了测试框架 public void runTest() { System.out.println(name+": "); long start=System.nanoTime(); try { test(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } long duration=System.nanoTime()-start; System.out.format("%.2f\n", duration/1.0e9); } public abstract void test() throws IOException; } private static Tester[] tests={ new Tester("Stream Writer"){ public void test()throws IOException{ DataOutputStream dos=new DataOutputStream( new BufferedOutputStream(new FileOutputStream( new File("temp.tmp")))); for(int i=0;i<numofints;i++){ dos.writeInt(i); } dos.close(); } },new Tester("Mapped Writer"){ public void test()throws IOException{ FileChannel fc=new RandomAccessFile("temp.tmp","rw").getChannel(); IntBuffer ib=fc.map(FileChannel.MapMode.READ_WRITE, 0, fc.size()).asIntBuffer();//将此通道的文件区域直接映射到内存中。 for(int i=0;i<numofints;i++){ ib.put(i); } fc.close(); } },new Tester("Stream Read"){ public void test()throws IOException{ DataInputStream dis=new DataInputStream( new BufferedInputStream(new FileInputStream( "temp.tmp"))); for(int i=0;i<numofints;i++){ dis.readInt(); } dis.close(); } }, new Tester("Mapped Read"){ public void test()throws IOException{ FileChannel fc=new FileInputStream(new File("temp.tmp")).getChannel(); IntBuffer ib=fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()).asIntBuffer(); while(ib.hasRemaining()){ ib.get(); } fc.close(); } }, new Tester("Stream Read/Write"){ public void test()throws IOException{ RandomAccessFile raf=new RandomAccessFile(new File("temp.tmp"),"rw"); raf.writeInt(1); for(int i=0;i<numofubuffints;i++){ raf.seek(raf.length()-4); raf.writeInt(raf.readInt()); } raf.close(); } }, new Tester("Mapped Read/Write"){ public void test()throws IOException{ FileChannel fc=new RandomAccessFile(new File("temp.tmp"),"rw").getChannel(); IntBuffer ib=fc.map(FileChannel.MapMode.READ_WRITE, 0, fc.size()).asIntBuffer(); ib.put(0); for(int i=1;i<numofubuffints;i++){ ib.put(ib.get(i-1)); } fc.close(); } } }; public static void main(String[] args) throws IOException { for(Tester test:tests){ test.runTest(); } /*测试结果如下:Stream Writer: 1.29 Mapped Writer: 0.07 Stream Read: 1.16 Mapped Read: 0.07 Stream Read/Write: 38.49 Mapped Read/Write: 0.01 */ } }
发表评论
-
MapReduce
2011-03-07 11:55 18241.什么是MapReduce? MapRedu ... -
java Web
2010-10-20 19:55 62response.sendRedirect(): Web服务 ... -
JDK动态代理
2010-10-05 14:12 2368注意在使用JDK提供的动态代理要求我们的目标对象必须实现接 ... -
java的反射机制
2010-10-05 11:16 1618反射:运行时类型 如果你不知道某个对象的确切类型,RTT ... -
如何判断两个类之间的差异
2010-08-16 09:35 982代码实现 package net.mindview.util ... -
HashSet和散列码的研究
2010-08-10 19:13 1571散列表(Hash table,也叫 ... -
持有对象Arrays.asList异常解决办法
2010-08-08 17:50 1245添加一组元素 package com.day1; im ... -
java编程思想 IO13 源码 文件解压缩
2010-05-09 15:21 1563package com.io; import java.io ... -
java编程思想 IO12 源码 文件加锁
2010-05-09 12:37 1829package com.io; import java.io ... -
java编程思想 IO10 文件操作源码
2010-05-08 16:05 1197package com.dirlist; import ... -
java编程思想 IO9 文件操作源码
2010-05-06 22:00 980缓冲器的详细应用: package com.dirlist; ... -
java编程思想 IO8 文件操作源码
2010-05-06 20:24 968通道与缓冲器的探究 pa ... -
java编程思想 IO7 文件操作源码
2010-05-06 09:42 1364希望大家留言一起讨论 ... -
java编程思想 IO6 文件操作源码
2010-05-05 23:26 1623package com.dirlist; import ... -
java编程思想 IO5 文件操作源码
2010-05-05 11:24 1386package com.dirlist; import ... -
java编程思想 IO4源码
2010-05-03 17:24 801目录的检查及创建 package com.dirlist; ... -
java编程思想 IO3源码
2010-05-03 16:27 1183利用策略设计模式来进行目录的遍历和文件的过滤 package ... -
java编程思想 IO2源码
2010-05-03 15:32 1143package net.mindview.util; impo ... -
java静态内部类
2010-05-03 11:31 2028引用别人的博客 在一 ... -
java编程思想 IO1源码
2010-05-03 09:48 1294目录列表器与目录过滤器的运用 package com.dirl ...
相关推荐
org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z Hadoop源码_NativeIO.java
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
Java NIO与IO性能对比分析.pdf
java IO教程,java IO教程,java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程,java IO教程,java IO教程,java IO...
收集了Java IO 文件读写等操作的实例
linux中的IO端口映射和IO内存映射.docx
本项目是一个基于Java语言开发的t-io高性能网络编程项目,包含442个文件,主要文件类型包括Java源代码、BAT批处理文件、XML配置文件、Git忽略文件、文本文件、图片、Shell脚本、属性文件和DOCX文档。系统设计旨在...
几乎每一种外设都是通过读写设备上的寄存器来进行...CPU对外设IO端口物理地址的编址方式有两种:一种是I/O映射方式(I/O-mapped),另一种是内存映射方式(Memory-mapped)。而具体采用哪一种则取决于CPU的体系结构。
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
易语言源码易语言磁盘IO性能监控源码.rar 易语言源码易语言磁盘IO性能监控源码.rar 易语言源码易语言磁盘IO性能监控源码.rar 易语言源码易语言磁盘IO性能监控源码.rar 易语言源码易语言磁盘IO性能监控源码.rar ...
基于java的开发源码-异步IO框架 Cindy.zip 基于java的开发源码-异步IO框架 Cindy.zip 基于java的开发源码-异步IO框架 Cindy.zip 基于java的开发源码-异步IO框架 Cindy.zip 基于java的开发源码-异步IO框架 Cindy.zip ...
。。。
。。。
javaio.zip 09.Java输入/输出流 javavi.zip 09.Java输入/输出流上机作业参考(文本编辑器) javathread.zip 10.Java多线程编程(线程池、生产者消费者、存取款实例) javautil.zip 11.Java常用实体类 javaxml.zip 14...
java中的IO流的基础教学,我在里面写了关于IO流最基础的几个类
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
基于java的开发源码-二进制IO类与文件复制操作实例.zip 基于java的开发源码-二进制IO类与文件复制操作实例.zip 基于java的开发源码-二进制IO类与文件复制操作实例.zip 基于java的开发源码-二进制IO类与文件复制操作...
memmap-rs, 面向内存映射IO的跨平台 Rust memmap跨平台内存映射的Rust 库。 特性文件备份的内存映射匿名内存映射同步和异步刷新copy-on-write内存映射只读内存映射堆栈支持( unix上的MAP_STACK )可以执行内存映射
封装好的java io实例,简单,可做学习参考,也可用于工具调用!
IO流 javaio java 流