import java.io.*;
public class FileUtil {
/**
* @Description //一个文件复制到另一个文件夹
* @Param [srcPath, destPath]
* @return void
*/
public static void copyPic(String srcPath, String destPath){
// 打开输入流
FileInputStream fis = null;
try {
File file1 = new File(srcPath);
//存在才执行
if(file1.exists()){
File file = new File(destPath);
if(!file.exists()){
file.getParentFile().mkdirs();
file.createNewFile();
}
fis = new FileInputStream(srcPath);
// 打开输出流
FileOutputStream fos = new FileOutputStream(file);
// 读取和写入信息
int len = 0;
// 创建一个字节数组,当做缓冲区
byte[] b = new byte[1024];
while ((len = fis.read(b)) != -1) {
fos.write(b, 0, len);
}
// 关闭流 先开后关 后开先关
fos.close(); // 后开先关
fis.close(); // 先开后关
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* @Description //文件夹复制
* @Param [sourcePath, newPath]
* @return void
*/
public static void copyDir(String sourcePath, String newPath){
File file = new File(sourcePath);
String[] filePath = file.list();
if (!(new File(newPath)).exists()) {
(new File(newPath)).mkdir();
}
if(filePath != null && filePath.length > 0){
for (int i = 0; i < filePath.length; i++) {
if ((new File(sourcePath + file.separator + filePath[i])).isDirectory()) {
copyDir(sourcePath + file.separator + filePath[i], newPath + file.separator + filePath[i]);
}
if (new File(sourcePath + file.separator + filePath[i]).isFile()) {
copyFile(sourcePath + file.separator + filePath[i], newPath + file.separator + filePath[i]);
}
}
}
}
/**
* @Description //文件复制
* @Param [oldPath, newPath]
* @return void
*/
private static void copyFile(String oldPath, String newPath){
File oldFile = new File(oldPath);
File file = new File(newPath);
FileInputStream in = null;
try {
in = new FileInputStream(oldFile);
FileOutputStream out = new FileOutputStream(file);;
byte[] buffer=new byte[2097152];
int readByte = 0;
while((readByte = in.read(buffer)) != -1){
out.write(buffer, 0, readByte);
}
in.close();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//删除文件夹
public static void delFolder(String folderPath) {
try {
delAllFile(folderPath); //删除完里面所有内容
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
myFilePath.delete(); //删除空文件夹
} catch (Exception e) {
e.printStackTrace();
}
}
//删除指定文件夹下所有文件
public static boolean delAllFile(String path) {
boolean flag = false;
File file = new File(path);
if (!file.exists()) {
return flag;
}
if (!file.isDirectory()) {
return flag;
}
String[] tempList = file.list();
File temp = null;
for (int i = 0; i < tempList.length; i++) {
if (path.endsWith(File.separator)) {
temp = new File(path + tempList[i]);
} else {
temp = new File(path + File.separator + tempList[i]);
}
if (temp.isFile()) {
temp.delete();
}
if (temp.isDirectory()) {
delAllFile(path + "/" + tempList[i]);//先删除文件夹里面的文件
delFolder(path + "/" + tempList[i]);//再删除空文件夹
flag = true;
}
}
return flag;
}
}
java-IO-文件工具类-文件(夹)复制和删除
最新推荐文章于 2023-03-07 09:56:08 发布