黑马程序员技术交流社区
标题:
IO流复制的问题
[打印本页]
作者:
天涯追梦
时间:
2014-4-25 14:33
标题:
IO流复制的问题
本帖最后由 天涯追梦 于 2014-4-27 10:39 编辑
下面代码复制一个文件会成功,但是如果复制文件夹却不会成功,但也不提示错误,这是为什么呢?
package cn.itcast.copy;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyTextByBufTest {
/**
* @param args
*/
public static void main(String[] args) {
copyTextByBuf();
}
public static void copyTextByBuf() {
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream("e:\\a.txt");
fos = new FileOutputStream("e:\\a.abc");
//创建缓冲区。
byte[] buf = new byte[1024];
//定义记录个数的变量。
int len = 0;
//循环读写。
while((len=fis.read(buf))!=-1){
fos.write(buf,0,len);
}
}catch(IOException e){
//异常日志。
}finally{
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
//异常日志。
e.printStackTrace();
}
}
if(fis!=null){
try {
fis.close();
} catch (IOException e) {
//异常日志。
e.printStackTrace();
}
}
}
}
}
复制代码
作者:
黄晓鑫
时间:
2014-4-25 15:03
因为只会复制一个空的文件夹 文件夹本身也是一个文件 所以就不会出错
复制文件夹代码:
/*
复制文件方法
*/
public static void copyFile(File dest,File src)throws IOException{
InputStream ips = new FileInputStream(src);
OutputStream ops = new FileOutputStream(dest);
byte[] buf =new byte[1024];
int len = 0;
while((len = ips.read(buf))!=-1){
ops.write(buf, 0, len);
}
ips.close();
ops.close();
}
/*
复制目录下的文件。
*/
public static void copyDir(File dest,File src)throws IOException{
dest.mkdirs();
File []dirAndFile = src.listFiles();
for(File dirOrFile : dirAndFile){
if(dirOrFile.isFile()){
copyFile(new File(dest.getAbsolutePath()+"\\"+dirOrFile.getName()),
new File(dirOrFile.getAbsolutePath()));
}
else if(dirOrFile.isDirectory()){
copyDir(new File(dest.getAbsolutePath()+"\\"+dirOrFile.getName()),
new File(dirOrFile.getAbsolutePath()));
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2