package com.hao.demo.netty.nio;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
/**
* @author haoxiansheng
* @date 2020-05-11
*/
public class NIOFileChannel03 {
public static void main(String[] args) throws Exception{
String path1 = "/Users/haoxiansheng/Downloads/Spring-Family/SpringBoot-Learning/influxdbdemo/file01.txt";
String path2 = "/Users/haoxiansheng/Downloads/Spring-Family/SpringBoot-Learning/influxdbdemo/file02.txt";
FileInputStream fileInputStream = new FileInputStream(path1);
FileChannel fileChannel01 = fileInputStream.getChannel();
FileOutputStream fileOutputStream = new FileOutputStream(path2);
FileChannel fileChannel02 = fileOutputStream.getChannel();
ByteBuffer buffer = ByteBuffer.allocate(512);
while (true) { // 循环读取
// 重要的复位 没有加的话是又问题的 position = limit
buffer.clear();
int read = fileChannel01.read(buffer);
if (read == -1) {
break;
}
buffer.flip();
// 将buffer中的数据写入到 fileChannel02
fileChannel02.write(buffer);
}
// 关闭流
fileChannel01.close();
fileChannel02.close();
fileInputStream.close();
fileOutputStream.close();
}
}