📄 filecopyforbuffer.java
字号:
package BUFFER;
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
public class FileCopyForBuffer {
public static void main(String[] args) throws IOException{
FileInputStream fis = new FileInputStream("e:/hhll.txt");
FileOutputStream fos = new FileOutputStream("e:/helin123.txt");
//定义 输入的管道和输出的管道
FileChannel fin = null,fout = null;
//输入的管道和输出的管道符给输入和输出流
fin = fis.getChannel();
fout = fos.getChannel();
//定义一个缓冲区
ByteBuffer bf = ByteBuffer.allocate(1024);
for(;;)
{
//将缓冲区中的position设置为0,limit指向capacity
bf.clear();
//第一次执行循环时将输入流中的数据全部读入缓冲区中,再判断一下数据的个数
//当执行完一次循环时,因为现在文件中的指针所指向的是文件的末尾处,所以就
//没有读入的数据说明已经到文件末尾,此时判断个数为-1
int i = fin.read(bf);
if(i == -1)
{
break;
}
//将缓冲区中的limit设置为position的位置,再将position设置为0,这样就
//可以取得到文件的全部。
bf.flip();
//将已经只存有读入的文件全部数据的部分通过输入流写入另一个文件
fout.write(bf);
}
//关闭操作,以节省资源
fin.close();
fout.close();
fis.close();
fos.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -