transferto 文件不存在_通过通道复制文件transferTo
import static java.nio.file.StandardOpenOption.*;
import java.nio.file.*;
import java.nio.channels.*;
import java.io.IOException;
import java.util.EnumSet;
public class FileBackup {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
Path file = Paths.get(System.getProperty("user.home")).resolve(
"Beginning Java Stuff").resolve("Sayings.txt");
if (!Files.exists(file)) {
System.err.println(file + " is not exist.");
System.exit(1);
}
file.toAbsolutePath();//将路径转化为绝对路径,如果已经是绝对路径则原样返回
Path tofile= createBackupFilePath(file);//创建复制文件路径
try{
FileChannel inCh=(FileChannel)(Files.newByteChannel(file));//filechannel具有更高的功能
WritableByteChannel outCh=Files.newByteChannel(tofile,EnumSet.of(WRITE,CREATE));//新建写入文件通道
int byteWritten=0;
long byteCount=inCh.size();
while(byteWritten
byteWritten+=inCh.transferTo(byteWritten,byteCount-byteWritten,outCh);
//Transfers bytes from this channel's file to the given writable byte channel.
//long transferTo(long position,long count,WritableByteChannel target) position是开始位置,count是要读取的字节数,target是目标通道
//返回的是实际转化的字节数
}
System.out.printf("File copy complete. %d bytes copied to %s%n", byteCount, tofile);
}catch(IOException e){
e.printStackTrace();
}
}
public static Path createBackupFilePath(Path file){
Path parent=file.getParent();
String name=file.getFileName().toString();//getFilename返回文件名(路径类型),也就是路径中距离根目录最远的
int period=name.indexOf('.');
if(period==-1){
period=name.length();
}
String nameAdd="_backup";
Path backup=parent.resolve(name.substring(0,period)+nameAdd+name.substring(period));//修改路径,建立复制文件路径
while(Files.exists(backup)){//检测新建的路径是否存在,如果存在则继续在文件名后面加_backup
name=backup.getFileName().toString();
backup=parent.resolve(name.substring(0,period)+nameAdd+name.substring(period));
period+=nameAdd.length();
}
return backup;
}
}
transferto 文件不存在_通过通道复制文件transferTo相关推荐
- python中shutil.copyfile的用法_用Python复制文件的9个方法
Python 中有许多"开盖即食"的模块(比如 os,subprocess 和 shutil)以支持文件 I/O 操作.在这篇文章中,你将会看到一些用 Python 实现文件复制的 ...
- python复制文件的方法是_Python中复制文件的9种方法
Python 中有许多"开盖即食"的模块(比如 os,subprocess 和 shutil)以支持文件 I/O 操作.在这篇文章中,你将会看到一些用 Python 实现文件复制的 ...
- python os复制文件_用Python复制文件的九种方法
以下是演示"如何在Python中复制文件"的九种方法. shutil copyfile()方法 shutil copy()方法 shutil copyfileobj()方法 shu ...
- transferto方法的应用_使用NIO中的transferTo方法传输数据精度丢失的问题
最近在学习NIO 时遇到一个问题,使用transferTo()方法和transferFrom()方法做零拷贝复制文件时数据丢失. 我想要完成这样一个测试,将d盘中一个centos镜像文件(CentOS ...
- tga文件怎么打开_六安软件定制文件打开的时候乱码怎么解决?
启达信息技术有限公司成立于2012年,是一家软件定制开发.移动终端应用开发的软件公司,同时也是软件云服务及企业信息化一揽子解决方案的提供商. 软件定制开发180 5607 0543 元旦的时候小编的朋 ...
- oracle 拷贝文件到asm,Oracle 从ASM复制文件到文件系统
工作中,有时需要把文件从ASM中复制到文件系统中或者反过来,做一些维护操作,本文介绍了4种复制文件的的方法:ASMCMD中的cp命令(11g) dbms_file_transfer包 rman的con ...
- oracle通信通道的文件结尾_ORA-03113:通信通道的文件结尾解决
提示ORA-03113:通信通道的文件结尾解决 事情原由:oracle安装到win7下,以为都是直接sqlplus / as sysdba,使用数据库,但最近连接时频繁报错, 提示ORA-03113: ...
- bat复制文件到指定目录同名_scp复制文件时排除指定文件
请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 本文主要讲解如何在scp复制文件时排除指定文件. 举例 ...
- gradle拷贝静态资源文件_android-Gradle Copy任务不会复制文件
我要执行以下任务,将文件从我的android项目资源文件复制到单元测试中ClassLoader实例可访问的其他路径. task copyResDirectoryToClasses(type: Copy ...
最新文章
- Flex4 Application中与Module通信
- 用groovy采集网页数据
- easy ui datagrid 中getSelections方法只能获取一行数据
- 西北大学集训队选拔赛 F-三生三世(STL set和map的简单应用)
- 关于ArcGIS Mobile回传数据中常遇到的问题整理!
- 计算机的组成 —— PCI(PCIE)、PCB
- 不续签合同,凭什么要求别人紧急加班
- 是否可以利用光压提高卫星轨道
- 137.只出现一次的数字II
- NOIP2017提高组题解(待填坑)
- 自定义view————涂鸦画板
- 八爪鱼采集ajax表格,设置八爪鱼采集器ajax延时采集分页列表的方法
- 2022数学建模国赛A题赛后总结
- 【HC-SR501人体红外传感器】
- ai技术对计算机的影响,人工智能技术的发展会对我们产生什么影响
- 和平精英有了氪金系统,玩家再也不敢开挂了?网友:你到亚服看看
- 计算机考研全国统考时段,考研初试各科目时间安排
- android wifi p2p框架,7.2.1 P2P架构
- OFDM中分析不同频偏(CFO)对通信链路的误码率影响仿真分析
- 在对设置表格设置table-layer:fixed样式后,发现表格中有一行合并过,其它没有合并的行的列宽会平均化,对列宽的设置会失效