Java字节流实现文件夹的拷贝
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
· java字节流实现文件夹的拷贝
· 拷贝文件夹,其中文件夹中又有多个文件
· 1.先遍历这个文件夹,判断是否是目录
· 2.创建文件夹
· 3.拷贝文件到新的地方
· */
public class FileDirectoryCopyDemo {
//遍历文件夹
public static void copy(File srcDir,File destDir){
//遍历srcDir文件夹
File[] list=srcDir.listFiles();
for(File f:list){
//先判断是否是目录,在目录文件夹里创建一个子目录
if(f.isDirectory()){
String name=f.getName(); //获取目录的名字
//调用方法去目录文件夹里创建子目录
File newDestDir=makeDir(destDir,name);
//递归
copy(f,newDestDir);
}else{
//如果不是目录,就拷贝文件
File dest=new File(destDir,f.getName());
fileCopy(f,dest);
}
}
}
public static File makeDir(File parent,String name){
File f=new File(parent,name);
f.mkdir();//创建文件夹
return f;
}
//文件拷贝函数
public static void fileCopy(File src,File dest){
InputStream in=null; //输入流,负责读文件
OutputStream out=null; //输出流,负责写入文件
try{
in=new FileInputStream(src);
out=new FileOutputStream(dest);
long start=System.currentTimeMillis();
//定义缓冲区
byte[] buffer=new byte[1024];
int len=-1;
· while((len=in.read(buffer))!=-1)//说明还没有读到文件的结尾
· {
· out.write(buffer,0,len); //输出流写入一个字节
· }
· long end=System.currentTimeMillis();
· //文件夹下有几个文件就耗时几次
· System.out.println(拷贝文件耗时:+(end-start)+毫秒);
· }catch(Exception e){
· e.printStackTrace();
· }finally{
· try {
· in.close();
· out.close();
· } catch (IOException e) {
· // TODO Auto-generated catch block
· e.printStackTrace();
· }
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//拷贝之前的原文件 haha是个文件夹
File src=new File(D:+File.separator+haha);
//拷贝之后的文件
File dest=new File(F:+File.separator+haha);
if(!dest.exists()){
dest.mkdir(); //创建文件夹
}
copy(src,dest);
}
}
Java字节流实现文件夹的拷贝的更多相关文章
- IO流-文件夹的拷贝
文件夹的拷贝操作 要求: 完成文件夹的拷贝,包括子目录的拷贝和所有文件的拷贝 分析: 首先,得在目标目录下创建一个与源文件夹名称相同的文件夹 遍历源文件夹中的所有文件对象,判断子文件是目录还是文件 如 ...
- Java 字节流实现文件读写操作(InputStream-OutputStream)
Java 字节流实现文件读写操作(InputStream-OutputStream) 备注:字节流比字符流底层,但是效率底下. 字符流地址:http://pengyan5945.iteye.com/b ...
- Linux下 两台机器文件/文件夹 相互拷贝
Linux下 两台机器文件/文件夹 相互拷贝 设有两台机器 :A:*.101及 B:*.102. 把A下的.temp/var/a.txt拷贝到B机器的/text/目录下: 进入B机器:scp root ...
- Java 遍历指定文件夹及子文件夹下的文件
Java 遍历指定文件夹及子文件夹下的文件 /** * 遍历指定文件夹及子文件夹下的文件 * * @author testcs_dn * @date 2014年12月12日下午2:33:49 * @p ...
- Atitit. C# java 的api 文件夹封装结构映射总结
Atitit. C# java 的api 文件夹封装结构映射总结 C# java ref System.Reflection System.Type. java.lang.ref concurren ...
- Java笔记:文件夹操作
创建目录: File类中有两个方法可以用来创建文件夹: mkdir( )方法创建一个文件夹,成功则返回true,失败则返回false.失败表明File对象指定的路径已经存在,或者由于整个路径还不存在, ...
- JAVA实现复制文件夹
package com.filetest; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...
- java 把一个文件夹里图片复制到另一个文件夹里
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.ut ...
- Java实现读取文件夹下(包括子目录)所有文件的文件名
在编程的过程中,经常会用到对文件的读写操作等.比如,找出某一个文件夹下的所有文件名等. 下面的程序给出了,获取某一给定文件夹下所有文件的绝对路径的程序.可以作为某一个模块,在需要的时候直接使用. pa ...
随机推荐
- shell基础:1.0概述
解释型.不用编译. 主要有两个工能:1.命令解释器 2.编程
- php7安装memchced扩展
tar -zxvf memcached-3.0.3.tgz cd memcached-3.0.3 phpize yum install libmemcached libmemcached-dev ./ ...
- js匿名自执行函数中闭包的高级使用(---------------------------******-----------------------------)
先看看最常见的一个问题: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- 2:5 视图控制器result的配置
result: 1:其实底层还是使用原来servlet的转发和重定向的方法: 2:redirectAction:只能定位到 action (比如下面name属性为 *User 的Action ,但 ...
- VS2010/MFC编程入门之四十二(MFC常用类:CString类)
上一节鸡啄米讲了分割窗口的有关知识,本节开始讲解MFC的一些常用类,先来说说CString类. CString类简介 CString类作为MFC的常用类,当之无愧.可以这样说,只要是从事MFC开发,基 ...
- RocketMQ 集群搭建--双Master方案
安装环境 jdk1.7 alibaba-rocketmq-3.2.6.tar.gz VM虚拟机redhat6.5-x64:192.168.1.201 192.168.1.202 Xshell4 部署 ...
- linux常用命令:tr 命令
tr 命令实现字符转换功能,其功能类似于 sed 命令,但是,tr 命令比 sed 命令简单.也就是说,tr 命令能实现的功能,sed 命令都可以实现.尽管如此,tr 命令依然是 Linux 系统下处 ...
- 使用原生的javascript封装动画函数(有callback功能)
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- Core Java 2
p267~p270: 1.一个方法不仅需要告诉编译器将要返回什么值, 还要告诉编译器有可能发生什么错误(以便在错误发生时用妥善的方式处理错误). 2.方法应该在首部声明所有可能抛出的异常. 3.方法抛 ...
- JQuery判断input是否被禁用
<script src="jquery.min.js"></script> <br/><input type="text&quo ...