Java NIO中的零拷贝原理
作者:兴趣使然的程序猿
这篇文章主要介绍了Java NIO中的零拷贝原理,零拷贝即Zero-Copy,顾名思义,零拷贝是指的一种非拷贝的方式来减少IO次数的工作方式,零拷贝的作用就是减少IO,提高IO效率,需要的朋友可以参考下
零拷贝
零拷贝即Zero-Copy,顾名思义,零拷贝是指的一种非拷贝的方式来减少IO次数的工作方式。零拷贝的作用就是减少IO,提高IO效率。
1 传统IO方式
传统IO的工作方式需要经历多次文件拷贝,还需要程序在操作系统模式和用户模式之间来回切换,这样来回一圈后才来完成一次文件修改,这样极大浪费了内存,效率偏低,所以在传统IO的基础上有了零拷贝的方式。
2 零拷贝原理
3 Java中如何使用零拷贝
使用Java中RandomAccessFile的transferTo方法或者transferFrom方法,具体实例如下。
public static void main(String[] args) throws IOException { RandomAccessFile from = new RandomAccessFile("src/main/java/com/lbh/nio/from.txt", "rw"); RandomAccessFile to = new RandomAccessFile("src/main/java/com/lbh/nio/to.txt", "rw"); FileChannel channel = from.getChannel(); FileChannel toChannel = to.getChannel(); channel.transferTo(0,channel.size(),toChannel); }
到此这篇关于Java NIO中的零拷贝原理的文章就介绍到这了,更多相关Java中的零拷贝内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!