您的位置:首页 > 编程语言 > Java开发

【java】IO流 实现简单的复制功能

2013-10-25 16:03 651 查看
package ioTest;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
* 实现简单的复制功能
* @author shihuafu 2013/10/25
*
*/
public class CopyDemo20131025 {
// 把拷贝文件,如果新文件不存在,自动创建
static void copyFile(File src, File dst) throws IOException {
InputStream in = new FileInputStream(src);
OutputStream out = new FileOutputStream(dst);

// Transfer bytes from in to out
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
}

// 递归拷贝文件夹,如果新文件夹不存在则自动创建。
public static void copyDirectory(File srcDir, File dstDir)
throws IOException {
if (srcDir.isDirectory()) {
if (!dstDir.exists()) {
dstDir.mkdir();
}

String[] children = srcDir.list();
for (int i = 0; i < children.length; i++) {
copyDirectory(new File(srcDir, children[i]), new File(dstDir,
children[i]));
}
} else {
copyFile(srcDir, dstDir);
}
}

// 调用这个方法
public static void copy(File srcDir, File dstDir) throws IOException {
if (!srcDir.isDirectory() && !srcDir.exists()) { // 判断(源文件夹)和(源文件)是否存在
System.out.println("源文件不存在!!!");
} else {
System.out.println("正在复制,请稍后");
copyDirectory(srcDir, dstDir);
System.out.println("文件夹复制成功!!!");
}
}

public static void main(String[] args) throws IOException {
// 这里是定义了目标文件夹和源文件夹
File f1 = new File(
"C:/Documents and Settings/Administrator/桌面/截至20131021/20131011/");
File f2 = new File("D:/JavaTest/copy/");
copy(f1, f2);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: