Java 拷贝文件夹

来源:互联网 发布:linux内核优化 编辑:程序博客网 时间:2024/06/05 02:38
package com.copy;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;import com.output.StreamUtils;//拷贝文件夹public class CopyDemo {public static void main(String[] args) {File source = new File("E:\\download\\Boom_man");File target = new File("E:\\copy");copy(source, target);}private static void copy(File source, File target) {if (!source.exists()) {return;}if (!target.exists()) {target.mkdirs();}// 如果是文件,直接创建if (source.isFile()) {copyFile(source, target);System.out.println("拷贝文件:" + source.getName());} else {// 列出source下的所有文件或文件夹File[] sourceChildren = source.listFiles();for (File f : sourceChildren) {copy(f, new File(target, source.getName()));}}}// 拷贝文件private static void copyFile(File source, File target) {if (!source.exists()) {System.out.println("文件不存在");return;}if (!target.exists()) {target.mkdirs();}File targetFile = new File(target, source.getName());// 拷贝BufferedInputStream bis = null;BufferedOutputStream bos = null;try {bis = new BufferedInputStream(new FileInputStream(source));bos = new BufferedOutputStream(new FileOutputStream(targetFile));int len = 0;byte[] buf = new byte[1024];while ((len = bis.read(buf)) != -1) {bos.write(buf, 0, len);}bos.flush();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {StreamUtils.closeOutput(bos);StreamUtils.closeInput(bis);}}}

0 0
原创粉丝点击