public class CopyFilebyChannel {
public static void main(String[] args) throws IOException {
/*
* @return 实际复制的字节数,如果文件、目录不存在、文件为null或者发生IO异常,返回-1 
*/  
copyDirectiory("/home/vergil/Desktop/111", "/home/vergil/Desktop/222");
}

public static long copyFile2(File srcFile, File destDir, String newFileName) {  
long copySizes = 0;  
if (!srcFile.exists()) {  
System.out.println("源文件不存在");  
copySizes = -1;  
} else if (!destDir.exists()) {  
System.out.println("目标目录不存在");  
copySizes = -1;  
} else if (newFileName == null) {  
System.out.println("文件名为null");  
copySizes = -1;  
} else {  
try {  
FileChannel fcin = new FileInputStream(srcFile).getChannel();  
FileChannel fcout = new FileOutputStream(new File(destDir,  
newFileName)).getChannel();  
long size = fcin.size();  
fcin.transferTo(0, fcin.size(), fcout);  
fcin.close();  
fcout.close();  
copySizes = size;  
} catch (FileNotFoundException e) {  
e.printStackTrace();  
} catch (IOException e) {  
e.printStackTrace();  
}  
}  
return copySizes;  
}  
// 复制文件夹   
public static void copyDirectiory(String sourceDir, String targetDir)  
throws IOException {  
// 新建目标目录   
(new File(targetDir)).mkdirs();  
// 获取源文件夹当前下的文件或目录   
File[] file = (new File(sourceDir)).listFiles();  
for (int i = 0; i < file.length; i++) {  
if (file[i].isFile()) {  
// 源文件   
File sourceFile=file[i];  
// 目标文件   
File targetFile=new   
File(new File(targetDir).getAbsolutePath()  
+File.separator+file[i].getName());  
// copyFile2(new File(sourceFile), new File(targetFile), sourceFile);  
copyFile2(sourceFile, new File(targetDir), sourceFile.getName());
}  
if (file[i].isDirectory()) {  
// 准备复制的源文件夹   
String dir1=sourceDir + "/" + file[i].getName();  
// 准备复制的目标文件夹   
String dir2=targetDir + "/"+ file[i].getName();  
copyDirectiory(dir1, dir2);  
}  
}  
}
}

CopyFile and Directory By channel相关推荐

  1. PyTorch模型读写、参数初始化、Finetune

    使用了一段时间PyTorch,感觉爱不释手(0-0),听说现在已经有C++接口.在应用过程中不可避免需要使用Finetune/参数初始化/模型加载等. 模型保存/加载 1.所有模型参数 训练过程中,有 ...

  2. fuchsia appmgr分析

    一.概述 appmgr启动: devmgr-->fuchsia_starter 1.等待fshost准备好/system目录 2.调用coordinator方法,扫描system目录下的driv ...

  3. Flume 海量日志收集利器

    Flume 海量日志收集利器 关于日志收集 服务器日志收集 服务器日志是大数据系统中最主要的数据来源之一 服务器日志可能包含的信息 访问信息 系统信息 其他业务信息 基于服务器日志的应用 业务仪表盘: ...

  4. 【CS】客户端更新(一)——更新程序文件方式

    一.前言 最近接手了个半CS半BS的项目.怎么说呢?由于项目比较紧张,而且BS的项目已经做出来了,虽说不是很好,但是也可以满足增删改查的操作.但是CS的项目比较紧,给了一个月的时间,如果每个功能都做的 ...

  5. caffe模型通道剪枝channel pruning

    deep compression介绍的剪枝:是将权值置0,再通过稀疏存储格式来减小模型大小. 如下, 通过通道剪枝来减少模型大小. # coding:utf-8 # by chen yhimport ...

  6. go channel 缓冲区最大限制_GO语言圣经学习笔记(八)Goroutines和Channels

    奋斗鸭!Day97 知识点 goroutinue 基本用法 golang非常深度的简化了goroutinue的使用方法,异常简单,门槛降低很多 // goroutinue 使用非常简单go f() G ...

  7. 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite ) - Zery-zhang

    一 基本介绍 操作文档,文件夹,需要用到的类 1 Directory (静态类) :      用于创建.移动和删除等操作通过 目录 和子 目录 DirectoryInfo (非静态): 2 File ...

  8. NIO:channel、buffer、状态变量、socket、charset

    在开始之前 关于本教程 新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的.NIO 弥补了原来的 I/O 的不足,它在标准 Java 代码中提供了高速的.面向块的 I/O.通过定义包含数据的 ...

  9. Fabric--configtxlator转换配置添加组织到channel

    configtxlator转换配置/添加Org组织到channel 设置环境 进入到fabric-samples/first-network目录中, 执行.byfn.sh -m down关闭网络,清理 ...

最新文章

  1. Jenkins进阶系列之——01使用email-ext替换Jenkins的默认邮件通知
  2. Java Review - ArrayList 源码解读
  3. mes生产管理的定义
  4. springMVC 与mybatis 整合 demo(maven 工程)
  5. EAS WebService部署
  6. STL17-函数对象
  7. JS+CSS全力打造的一级横向滑动,二级竖向下拉综合菜单
  8. java socket群聊_java socket来实现私聊和群聊-简易版
  9. 2015C蓝桥杯C++A:格子中输出(详细讲解)
  10. jquery知识点总结(转)
  11. electron打包失败在下载nsis的地方
  12. Java 定义一个 Employee类,定义方法输出Employee的名字,年龄,总收入。编写应用程序使用Employee
  13. 没有卑微的工作,只有卑微的工作态度
  14. 软件测试-黑盒测试,白盒测试,灰盒测试
  15. 跟我学Kafka:Kafka消费组运维详解
  16. C# winform实现百度地图导航
  17. TabIndex是干什么滴
  18. 谢希仁计算机网络第五版课后习题答案(1~6章)
  19. 测试工程师之【python】按工龄开始日期和司龄开始日期计算当年法定年假
  20. RabbitMQ内存消耗

热门文章

  1. 机器学习笔记:为什么要对数据进行归一化处理?
  2. dataset for person re-id
  3. 深度学习笔记5:Building Deep Networks for Classification
  4. 3D CNN框架结构各层计算
  5. 复旦计算机考研19年录取线,2019年复旦大学考研复试分数线已公布
  6. java string blog_StringUtils方法全集
  7. 单链表按顺序插入节点
  8. Linux下MySQL数据库的备份与还原,mysql快速导入导出数据库实例演示,解决mysql大数据量数据库导出慢的问题
  9. leetcode 38. 外观数列 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下
  10. 【BLE】TLSR8258开发记录之15--模拟FATFS