复制多级目录案例分析: 1.创建数据源目录的File对象,路径是M:\IODemo\javaTest\java 2.获取源目录File对象的名称java 3.创建目的地目录File对象,路径名是模块名加Java组成 4.判断目的地目录对应的File是否存在,不存在就创建 5.获取源目录下File表示的抽象路径名数组 6.遍历数组得到每一个文件名字符串 7.在目的地目录下以获取到的名称创建文件 8.创建复制方法,最后释放资源 9.调用方法,复制文件夹
package anli;
import java.io.*;
/*
复制多级目录案例分析:
1.创建数据源目录的File对象,路径是M:\IODemo\javaTest\java
2.获取源目录File对象的名称java
3.创建目的地目录File对象,路径名是模块名加Java组成
4.判断目的地目录对应的File是否存在,不存在就创建
5.获取源目录下File表示的抽象路径名数组
6.遍历数组得到每一个文件名字符串
7.在目的地目录下以获取到的名称创建文件
8.创建复制方法,最后释放资源
9.调用方法,复制文件夹
*/
public class copy_duojiFile {
public static void main(String[] args) throws IOException {
//创建数据源目录的File对象,路径是M:\IODemo\javaTest\java
File f = new File("M:\\IODemo\\javaTest\\java");
//获取源目录File对象的名称java
String fname = f.getName();
//创建目的地目录File对象,路径名是模块名加Java组成
File f1 = new File("IO_Test", fname);
//判断目的地目录对应的File是否存在,不存在就创建
if (!f1.exists()) {
f1.mkdir();
}
//获取源目录下File表示的抽象路径名数组,目录中的文件路径数组
File[] files = f.listFiles();
//遍历数组得到每一个文件名字符串
for(File a:files){
//获取文件的名称
String namea = a.getName();
//在目的地目录下以获取到的名称创建文件
File f2 = new File(f1,namea);
//调用方法,复制文件
copyFile(a,f2);
}
}
//创建复制文件方法,完成后释放资源
public static void copyFile(File f,File f2) throws IOException {
//创建字节缓冲流读数据对象
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f));
//创建字节缓冲流写数据对象
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f2));
//读取数据,一次一个字节数组
byte[] bys = new byte[1024];
int len;
while((len=bis.read(bys))!=-1){
//写数据,一次一个字节数组
bos.write(bys,0,len);
}
//释放资源
bis.close();
bos.close();
}
}
版权声明:本文为sbgunlun原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。