读书人

还在用循环吗?Java复制资料内容NIO版

发布时间: 2013-07-01 12:33:04 作者: rapoo

还在用循环吗?Java复制文件内容NIO版本

网上的文件操作目前都停留在老的IO API当中,这大概就是为什么NIO(New IO)都已经不new了,在中国吃透的人还是很少的缘故吧?

?

不要用循环了,来用NIO吧,只要你的JDK在1.5以上,Follow Me!

?

我们用到的是FileChannel中的2个方法

?

transferFrom(ReadableByteChannel src, long position, long count)

transferTo( long position, long count,?WritableByteChannel dest)

?

这2个方法,其实都一样,就是源和目标换一下而已

?

package com.eric.thinking.java.nio;import java.io.IOException;import java.io.RandomAccessFile;import java.nio.channels.FileChannel;public class TansformExample {public static void main(String[] args) throws IOException {RandomAccessFile fromFile = new RandomAccessFile("data/nio-data.txt","rw");FileChannel fromChannel = fromFile.getChannel();RandomAccessFile toFile = new RandomAccessFile("data/nio-to.txt", "rw");FileChannel toChannel = toFile.getChannel();long position = 0;long count = fromChannel.size();toChannel.transferFrom(fromChannel, position, count);fromFile.close();toFile.close();}}

?

简单吧?

读书人网 >编程

热点推荐