package nio;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
/**
* @author DELL
*/
public class TestChannel {
public static void main(String[] args) throws IOException {
// read();
// write();
// transferFrom();
transferTo();
}
/**
* 读取
* @throws IOException
*/
public static void read() throws IOException {
RandomAccessFile randomAccessFile = new RandomAccessFile("D:\\Maven-Item\\basic\\src\\a.txt", "rw");
FileChannel channel = randomAccessFile.getChannel();
ByteBuffer byteBuffer = ByteBuffer.allocate(2);
int read = channel.read(byteBuffer);
while (read!=-1){
byteBuffer.flip();
while (byteBuffer.hasRemaining()){
System.out.print((char)byteBuffer.get());
}
byteBuffer.clear();
read = channel.read(byteBuffer);
}
System.out.println();
channel.close();
randomAccessFile.close();
}
/**
* 写入
* @throws IOException
*/
public static void write() throws IOException{
RandomAccessFile readFile = new RandomAccessFile("D:\\Maven-Item\\basic\\src\\素书.txt", "rw");
RandomAccessFile writeFile = new RandomAccessFile("D:\\Maven-Item\\basic\\src\\b.txt", "rw");
FileChannel readFileChannel = readFile.getChannel();
FileChannel writeFileChannel = writeFile.getChannel();
ByteBuffer buffer = ByteBuffer.allocate(1);
int read = readFileChannel.read(buffer);
while (read!=-1){
buffer.flip();
while (buffer.hasRemaining()){
writeFileChannel.write(buffer);
}
buffer.clear();
read = readFileChannel.read(buffer);
}
readFileChannel.close();
writeFileChannel.close();
}
/**
* 通道之间传输数据
*/
public static void transferTo () throws IOException{
RandomAccessFile readFile = new RandomAccessFile("D:\\Maven-Item\\basic\\src\\素书.txt", "rw");
RandomAccessFile writeFile = new RandomAccessFile("D:\\Maven-Item\\basic\\src\\b.txt", "rw");
FileChannel readFileChannel = readFile.getChannel();
FileChannel writeFileChannel = writeFile.getChannel();
readFileChannel.transferTo(0,readFileChannel.size(),writeFileChannel);
readFileChannel.close();
writeFileChannel.close();
}
/**
* 通道之间传输数据
*/
public static void transferFrom () throws IOException{
RandomAccessFile readFile = new RandomAccessFile("D:\\Maven-Item\\basic\\src\\素书.txt", "rw");
RandomAccessFile writeFile = new RandomAccessFile("D:\\Maven-Item\\basic\\src\\b.txt", "rw");
FileChannel readFileChannel = readFile.getChannel();
FileChannel writeFileChannel = writeFile.getChannel();
writeFileChannel.transferFrom(readFileChannel,0,readFileChannel.size());
readFileChannel.close();
writeFileChannel.close();
}
}