package com.qf.day19;
import java.io.*;
//先输入流,再输出流
//要求:把F:\MAD.AMV\bilibili\心海.flv文件复制到C:\Users\Emilia\Desktop\AAA\BBB\CCC
//把一个文件复制到另个一地方,规定同时输入再输出
public class Demo02 {
public static void main(String[] args) throws IOException {
//把数据写入内存,
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("F:\\MAD.AMV\\bilibili\\心海.flv"));
//直接把地址变成流的形式在加buffered,把流加上缓冲。赋值费bis对象
//把内存写入指定位置
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\\Users\\Emilia\\Desktop\\AAA\\BBB\\CCC\\1.flv"));
//被写入的目标必须是一个同样后缀的文件,本质上是绝对路径覆盖
byte [] buf = new byte[4*1024];
int length;//定义变量长度
while ((length = bis.read(buf))!=-1){
//把每次的数组元素个数的赋值给长度,再用长度去和-1对比,如果不等于-1就true,运行bos.write写入流到文件,并用偏移控制。
//buf是指定的这个数组,0是偏移的位置,length是指数组的长度
bos.write(buf,0,length);
}
bos.close();//先关闭bufferedOutputStream 对象 再关闭 bufferedInputStream的对象
bis.close();
}
}
先确定要复制文件的地址和目标地址,注意:目标地址需要是同后缀的文件。