还在用循环吗?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();
	}
}

 

简单吧?

你可能感兴趣的:(Java)