CopyFile and Directory By channel
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相关推荐
- PyTorch模型读写、参数初始化、Finetune
使用了一段时间PyTorch,感觉爱不释手(0-0),听说现在已经有C++接口.在应用过程中不可避免需要使用Finetune/参数初始化/模型加载等. 模型保存/加载 1.所有模型参数 训练过程中,有 ...
- fuchsia appmgr分析
一.概述 appmgr启动: devmgr-->fuchsia_starter 1.等待fshost准备好/system目录 2.调用coordinator方法,扫描system目录下的driv ...
- Flume 海量日志收集利器
Flume 海量日志收集利器 关于日志收集 服务器日志收集 服务器日志是大数据系统中最主要的数据来源之一 服务器日志可能包含的信息 访问信息 系统信息 其他业务信息 基于服务器日志的应用 业务仪表盘: ...
- 【CS】客户端更新(一)——更新程序文件方式
一.前言 最近接手了个半CS半BS的项目.怎么说呢?由于项目比较紧张,而且BS的项目已经做出来了,虽说不是很好,但是也可以满足增删改查的操作.但是CS的项目比较紧,给了一个月的时间,如果每个功能都做的 ...
- caffe模型通道剪枝channel pruning
deep compression介绍的剪枝:是将权值置0,再通过稀疏存储格式来减小模型大小. 如下, 通过通道剪枝来减少模型大小. # coding:utf-8 # by chen yhimport ...
- go channel 缓冲区最大限制_GO语言圣经学习笔记(八)Goroutines和Channels
奋斗鸭!Day97 知识点 goroutinue 基本用法 golang非常深度的简化了goroutinue的使用方法,异常简单,门槛降低很多 // goroutinue 使用非常简单go f() G ...
- 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite ) - Zery-zhang
一 基本介绍 操作文档,文件夹,需要用到的类 1 Directory (静态类) : 用于创建.移动和删除等操作通过 目录 和子 目录 DirectoryInfo (非静态): 2 File ...
- NIO:channel、buffer、状态变量、socket、charset
在开始之前 关于本教程 新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的.NIO 弥补了原来的 I/O 的不足,它在标准 Java 代码中提供了高速的.面向块的 I/O.通过定义包含数据的 ...
- Fabric--configtxlator转换配置添加组织到channel
configtxlator转换配置/添加Org组织到channel 设置环境 进入到fabric-samples/first-network目录中, 执行.byfn.sh -m down关闭网络,清理 ...
最新文章
- Jenkins进阶系列之——01使用email-ext替换Jenkins的默认邮件通知
- Java Review - ArrayList 源码解读
- mes生产管理的定义
- springMVC 与mybatis 整合 demo(maven 工程)
- EAS WebService部署
- STL17-函数对象
- JS+CSS全力打造的一级横向滑动,二级竖向下拉综合菜单
- java socket群聊_java socket来实现私聊和群聊-简易版
- 2015C蓝桥杯C++A:格子中输出(详细讲解)
- jquery知识点总结(转)
- electron打包失败在下载nsis的地方
- Java 定义一个 Employee类,定义方法输出Employee的名字,年龄,总收入。编写应用程序使用Employee
- 没有卑微的工作,只有卑微的工作态度
- 软件测试-黑盒测试,白盒测试,灰盒测试
- 跟我学Kafka:Kafka消费组运维详解
- C# winform实现百度地图导航
- TabIndex是干什么滴
- 谢希仁计算机网络第五版课后习题答案(1~6章)
- 测试工程师之【python】按工龄开始日期和司龄开始日期计算当年法定年假
- RabbitMQ内存消耗
热门文章
- 机器学习笔记:为什么要对数据进行归一化处理?
- dataset for person re-id
- 深度学习笔记5:Building Deep Networks for Classification
- 3D CNN框架结构各层计算
- 复旦计算机考研19年录取线,2019年复旦大学考研复试分数线已公布
- java string blog_StringUtils方法全集
- 单链表按顺序插入节点
- Linux下MySQL数据库的备份与还原,mysql快速导入导出数据库实例演示,解决mysql大数据量数据库导出慢的问题
- leetcode 38. 外观数列 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下
- 【BLE】TLSR8258开发记录之15--模拟FATFS