2018.04.26是一个值得纪念的日子,这一天我正在一如既往的写代码,做到就业班day09-04题的时候,发现了有一些不完善,于是便开始修改代码,随后便开始测试。之后便是我的噩梦,代码成功的运行了,但是我去查看我的源文件---成功的变为空(就业班至今的作业变空了),虽然文件依然健在,但是心拔凉拔凉的,已经无爱了。之后就去检查代码,平白无辜的多了十几行代码,随后我又将其删除,重新测试。成功了。给大家看一下我修改完的代码吧,因为这件事发现于昨天,问题代码没有保留。
package com.itheima.day0904;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class IOUtils {
// 定义一个工具类IOUtils,有以下方法,方法描述如下:
// 1.copyFile2Dir(File srcFile,File destDir)
// 参数File srcFile:要复制的源文件
// 参数File destDir:复制产生的新文件的存储路径(目标路径)
// 要求:将srcFile文件复制到destDir目标文件夹中(不能改变源文件的名称)
// 2.copyDir2Dir(File srcDir,File destDir)
// 参数File srcDir:要复制的源文件夹
// 参数File destDir:复制产生的新文件的存储路径(目标路径)
// 要求:将srcDir文件夹中的所有内容复制到destDir目标文件夹中(不能改变源文件的名称)
public static void copyFile2Dir(File srcFile, File destDir) throws IOException {
// 判断输入路径与输出路径是否相同
String fil = srcFile.getParent();
String fil1 = destDir.getParent();
// 判断两个路径是否相同
if (fil.equals(fil1)) {
System.out.println("路径相同");
return;
}
// 判断目标路径是否存在
if (!destDir.exists()) {
// 不存在就创建文件夹
destDir.mkdirs();
}
// 获取文件名
String fileName = destDir + "\\" + srcFile.getName();
// 创建字节写入流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(fileName));
byte[] b = new byte[1024];
int len;
while ((len = bis.read(b)) != -1) {
bos.write(b, 0, len);
}
bos.close();
bis.close();
}
// 2.copyDir2Dir(File srcDir,File destDir)
// 参数File srcDir:要复制的源文件夹
// 参数File destDir:复制产生的新文件的存储路径(目标路径)
// 要求:将srcDir文件夹中的所有内容复制到destDir目标文件夹中(不能改变源文件的名称)
public static void copyDir2Dir(File srcFile, File destDir) throws IOException {
// // 判断输入路径与输出路径是否相同
// String fil = srcFile.getParent();
// String fil1 = destDir.getParent();
// // 判断两个路劲是否相同
// if (fil.equals(fil1)) {
// System.out.println("路径相同");
// return;
// }
// 判断目标路径是否存在
if (!destDir.exists()) {
// 不存在就创建文件夹
destDir.mkdirs();
}
// 判断是否为文件夹
if (srcFile.isDirectory()) {
// 获取所有文件及文件夹名称
File[] file = srcFile.listFiles();
// 遍历数组
for (File f : file) {
// 判断是否是文件
if (f.isFile()) {
// 写入文件
method(destDir, f);
}else {
//获取该文件的名称
String s = f.getName();
//创建文件对象(destDir为父文件夹,s为文件(或者是指向文件))
File file1 = new File(destDir,s);
//重新返回方法
copyDir2Dir(f,file1);
}
}
}
}
private static void method(File destDir, File f) throws FileNotFoundException, IOException {
// 创建字节写入流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f.getParent() + "\\\\" + f.getName()));
// 创建字节输出流
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destDir + "\\\\" + f.getName()));
// 写入数据
byte[] b = new byte[1024];
int len;
while ((len = bis.read(b)) != -1) {
bos.write(b);
}
// 释放资源
bos.close();
bis.close();
}
}
|
|