java 编写程序,拷贝一个带内容的文件夹。 例如:将c:\program files\java 文件夹拷贝到D盘的根目录下

求完整代码,急!!!!!!!需写上测试方法... 求完整代码,急!!!!!!!需写上测试方法 展开
 我来答
山中小馆
2011-11-11 · 干一行,爱一行,专注零售近十载
山中小馆
采纳数:1082 获赞数:6811

向TA提问 私信TA
展开全部
有没有那么多.... 给你个少的:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

public class CopyFile {
public static void main(String[] args) throws FileNotFoundException, IOException {
Copy("D://a.java","D://text.txt");//第一个是目标文件的目录,第二个是你想拷贝的目录
}

public static void Copy(String F,String D) throws IOException, FileNotFoundException {
String file = F;
BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream(file), "GBK"));

PrintWriter w = new PrintWriter(new OutputStreamWriter(
new FileOutputStream(D), "utf-8"));
// .readLine(); 每次读取一行, 到 \n,\r为止
// 如果到文件末尾, 返回null
String str;
while ((str = in.readLine()) != null) {
System.out.println(str);
w.write(str + "\n");
}
in.close();
w.close();
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
泰然还素净的海鸥H
2011-11-11 · TA获得超过332个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:135万
展开全部
正好 前两天写了个差不多的。直接贴给你了。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;

/*
* 用java IO实现:将一个目录下的文件copy到另一个目录下。
* a) 输入:源目录,目标目录
* b) 输出:文件及目录结构复制成功并打印复制的文件个数
*/

public class FileCopy {
private File file = null;
private String sourceDir = null;
private String signDir = null;
private boolean flag = false;

public static void main(String[] args) {
new FileCopy();
}

public FileCopy() {
inputSourceDir();
File[] files = file.listFiles();
for (File f : files) {
if (f.isFile()) System.out.println(f + "\t这是一个文件。");
else if (f.isDirectory()) System.out.println(f + "\t这是一个目录。");
}
inputSignDir();
copyFile(files);
}

private void inputSourceDir(){
flag = false;
do {
System.out.println("请输入源目录:");
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
try {
sourceDir = br.readLine();
file = new File(sourceDir);
if (file.isDirectory()) {
flag = true;
} else {
flag = false;
}
} catch (IOException e) {
System.out.println("输入错误,请重新输入。");
}
} while (false == flag);
}

private void inputSignDir() {
flag = false;
do {
System.out.println("请输入目标目录:");
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
try {
signDir = br.readLine();
file = new File(signDir);
if (file.isDirectory()) {
flag = true;
} else {
flag = false;
}
} catch (IOException e) {
System.out.println("输入错误,请重新输入。");
}
} while (false == flag);
}

private void copyFile(File[] files) {
System.out.println("拷贝的源文件夹路径:" + sourceDir);
System.out.println("拷贝的目标文件夹路径:" + signDir);
for (File f : files) {
try {
File ok = new File(signDir, f.getName());
if (false == ok.exists()) {
ok.createNewFile();
}
FileInputStream fis = new FileInputStream(f);
byte[] size = new byte[(int) f.length()];
fis.read(size);
FileOutputStream fos = new FileOutputStream(ok);
fos.write(size);
if ((f.getName().equals(ok.getName())) && (f.length() == ok.length())) {
System.out.println(f + "\t文件拷贝成功!");
} else {
System.out.println(f + "\t文件拷贝失败!");
}
fis.close();
fos.close();
} catch (FileNotFoundException e) {
System.out.println("文件(夹)没有找到!");
} catch (IOException e) {
System.out.println("文件读取出错!");
}
}
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式