把“/Users/mac/Desktop/123”这个文件夹复制到模块目录下
步骤:
- 创建数据源目录File对象,路径是/Users/mac/Desktop/123
- 获取数据源目录File对象的名称
- 创建目的地目录File对象,路径由(模块名+第2步获取的名称)组成
- 判断第3步创建的File是否存在,如果不存在,就创建
- 获取数据源目录下所有文件的File数组
- 遍历File数组,得到每一个File对象,该File对象,其实就是数据源文件
- 获取数据源文件File对象的名称
- 创建目的地文件File对象,路径由(目的地目录+第7步获取的名称)组成
- 复制文件
import java.io.*;
public class demo{
public static void main(String[] args) throws IOException {
/*
srcFolder:原目录File
srcFolderName:原目录名
destFolder:目的地File
listFiles:原目录下文件
srcFile:原目录下File对象
srcFileName:原目录下File对象名
destFile:目的地File对象
*/
//创建数据源目录File对象
File srcFolder = new File("//Users//mac//Desktop//123");
//获取File对象名称
String srcFolderName = srcFolder.getName();
//创建目的地目录File对象
File destFolder = new File("//Users//mac//IdeaProjects//demo",srcFolderName);
//判断创建的File是否存在,不存在->创建一个
if(!destFolder.exists()){
destFolder.mkdir();
}
//获取目录下所有文件的File数组
File[] listFiles = srcFolder.listFiles();
//遍历数组,获取名称
for(File srcFile : listFiles){
String srcFileName = srcFile.getName();
//创建目的地文件File对象
File destFile = new File(destFolder,srcFileName);
//复制文件
copyFile(srcFile,destFile);
}
}
private static void copyFile(File srcFile, File destFile) throws IOException {
//用字节缓冲输入输出流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));
byte[] bys = new byte[1024];
int len;
while((len = bis.read(bys)) != -1){
bos.write(bys,0,len);
}
bos.close();
bis.close();
}
}