注册 登录
编程论坛 JAVA论坛

The method write(int) in the type FileOutputStream is not applicable for the arg

活出样子 发布于 2020-10-25 21:56, 1890 次点击
package Sample;

import
import
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public class CopyGFile {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String infile = "c:\\copy.sql";
        String outfile = "c:\\copy.txt";
        //获取源文件和目标文件的输出流
        FileInputStream fin = new FileInputStream(infile);
        FileOutputStream fout = new FileOutputStream(outfile);
        //获取输入输出通道
        FileChannel fcin = fin.getChannel();
        FileChannel fcout = fout.getChannel();
        //创建缓冲区
        ByteBuffer buffer = ByteBuffer.allocate(1024);
        while(true) {
            //clear方法重设缓冲区,使它可以接受读入的数据
            buffer.clear();
            //从输入通道中将数据读到缓冲区
            int r = fcin.read(buffer);
            //read方法返回读取的字节,可能为零,如果该通道已到达流的末尾,则返回-1
            if(r == -1) {
                break;
            }
            //flip方法让缓冲区可以将新读入的数据写入另一个通道
            buffer.flip();
            //从输出通道中将数据写入缓冲区
            fout.write(buffer);
        }
    }

}
0 回复
1