前言
通过java可以实现文件,文件夹的复制和加密解密等操作,今天我们就先来看文件的复制,文件夹在后续会进行更新
单个文件复制
想要实现文件复制功能需要先了解一下 IO流,文件输入流和文件输出等相关的知识哦,暂时还没有传送门
实现步骤
- 首先要有被复制的文件还有要复制到的路径
- 创建文件输入流读取文件
- 创建文件输出流向指定路径创建新文件
- 利用byte数组进行读取写入操作
代码演示
public static void copy(File file, String path) {
// 首先定义字符型文件输入流和输出流 方便一会进行关闭
FileInputStream fis = null;
FileOutputStream fos = null;
try {
// 根据传进来的file对象创建文件输入流
fis = new FileInputStream(file);
// 这里创建复制后的新文件
// 例如:File-->C://用户//tt.txt 复制路径path-->F://test
// 获取文件名 tt.txt 拼接path+"//"
// 最后获取到的复制后的文件完整路径:F://test//tt.txt
File newFile = new File(path+"//"+file.getName());
// 创建文件输入流 以新文件创建
fos = new FileOutputStream(newFile);
// 以数组读取写入
byte[] b = new byte[1024];
// 读取元素
int count = fis.read(b);
// 判断是否读取到了有效元素
while(count!=-1) {
fos.write(b,0,count);// 写入 从0开始 读到了多少写入多少
fos.flush();// 将元素从流管道推到文件中 可以不写
count = fis.read(b);// 操作完毕再次进行下一次的读取
}
System.out.println("文件复制完毕");
} catch (Exception e) { // 这里我直接使用了Exception
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//关闭流管道
if(fis!=null) {
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(fos!=null) {
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
我们测试执行一下
可以看到文件已经成功复制到了D盘下,除了文本视频和图片也是可以的哦
视频也成功的复制完毕
后边会给大家介绍IO流的相关知识哦