黑马程序员技术交流社区
标题:
关于IO
[打印本页]
作者:
zl78365336
时间:
2013-12-6 20:41
标题:
关于IO
本帖最后由 zl78365336 于 2013-12-6 23:09 编辑
代码错在哪里了,该怎么改?
import java.io.*;
public class CopyFilesTest {
public static void main(String[] args) throws Exception {
File src = new File("e:/zz");
File des = new File("e:/zl");
showDir(src);
}
public static void showDir(File dir) {
File[] files = dir.listFiles();
for(int x=0;x<files.length;x++){
if(files[x].isDirectory())//判断是否为文件夹
showDir(files[x]);//是文件夹,递归
else
copyFiles(files[x],des);
}
}
private static void copyFiles(File src,File des)throws Exception {
//定义缓冲读流
BufferedInputStream in = new BufferedInputStream(new FileInputStream(src));
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(des));
int by = 0;
while((by=in.read())!=-1){
out.write(by);
}
in.close();
out.close();
}
}
复制代码
作者:
摄影勾魂
时间:
2013-12-6 21:25
第18行,copyFiles(files[x],des); des从哪儿来,你在第11行定义 showDir(File dir) 时,形参列表里是没有des。这个问题解决了,而且 也确实存在e:/zz ,编译运行时不会有问题的。不过,你要把 e:/zz 下的文件夹或者文件都复制到e:/zl下,z1又是什么格式的呢?怎么打开呢
作者:
刘敏
时间:
2013-12-6 22:52
你的问题是想把一个文件夹目录下的东东拷贝到另一个文件夹下;但是你的CopyFiles中流对象只能关联具体的文件,而不能是文件夹!
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(des));
这个
des
应该是文件而不是文件夹
作者:
zl78365336
时间:
2013-12-6 23:08
用什么方式来完善这个程序呢?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2