Java文件复制
主要是工作代码,无解释。
/**
* 将文件或文件夹source复制到dest
* <br>目标文件检测:
* <br> a.当文件不存在时:需要创建文件
* <br> 根据是否有后缀名来确定是创建的是文件夹还是文件,有后缀名时创建文件
* <br> 如果创建的是文件夹则会将source复制到dest文件夹中。
* <br> 如果是文件,则直接将source复制为dest
* <br> b.当文件存在时:需要判断目标文件是文件夹还是文件
* <br> 如果是文件夹,在该文件夹下创建以来源文件名命名的文件
* @param source
* @param dest
*/
public static void moveFile(File source,File dest) throws FileNotFoundException,IOException{
FileInputStream fis = null;
FileChannel fc= null;
FileOutputStream fout= null;
WritableByteChannel to= null;
try {
if(!source.exists()){
System.out.println("源文件不存在!");
return ;
}
if(source.isDirectory()){
File[] srcs = source.listFiles();
for(File src:srcs){
moveFile(src,new File(dest.getPath()+File.separator+src.getName()));
}
}else{
if(!dest.exists()){
if(!new File(dest.getParent()).exists()){
new File(dest.getParent()).mkdirs();
}
//根据是否有后缀名来确定是创建的是文件夹还是文件,有后缀名时创建文件。
if(dest.getName().matches(".*\\..*")){
dest.createNewFile();
}else{
dest.mkdir();
dest = new File(dest.getPath()+File.separator+source.getName());
dest.createNewFile();
}
}else{
//当目标文件存在时,需要判断目标文件是文件夹还是文件,如果是文件夹,在该文件夹下创建以来源文件名命名的文件
if(!dest.getName().matches(".*\\..*")){
dest = new File(dest.getPath()+File.separator+source.getName());
dest.createNewFile();
}
}
fis = new FileInputStream(source);
fc=fis.getChannel();
fout=new FileOutputStream(dest);
to=fout.getChannel();
fc.transferTo(0,fc.size(),to);
fis.close();
fc.close();
fout.flush();
fout.close();
to.close();
}
} catch (FileNotFoundException e) {
throw e;
} catch (IOException e) {
throw e;
} finally {
if(fis!=null){
fis.close();
}
if(fc!=null){
fc.close();
}
if(fout!=null){
fout.flush();
fout.close();
}
if(to!=null){
to.close();
}
}
}
Java文件复制的更多相关文章
- IO复制多级目录 控制台输入文件目录然后把目录下java文件复制到 D: 并统计java个数
package cn.itcast_05; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...
- java基础 File 递归删除文件夹中所有文件文件夹 目录(包含子目录)下的.java文件复制到e:/abc文件夹中, 并统计java文件的个数
File 递归删除文件夹中所有文件文件夹 package com.swift.kuozhan; import java.io.File; import java.util.Scanner; /*键盘录 ...
- Java算法面试题:编写一个程序,将e:\neck目录下的所有.java文件复制到e:\jpg目录下,并将原来文件的扩展名从.java改为.jpg
package com.swift; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; i ...
- Java基础面试操作题: File IO 文件过滤器FileFilter 练习 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件
package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...
- Java文件复制与读写
函数介绍 public String readLine():每次读取文件的一行,当文件读取完毕时,返回null public int read(byte[] b):将文件内容读取到字节数组b ...
- java 文件复制
java实现文件复制 CreateTime--2017年9月7日15:04:48 Author:Marydon 1.需求 根据原文件复制一份到指定位置 2.代码实现 需要导入: import ja ...
- Java文件复制删除操作合集
import java.io.*; public class FileOperate { public FileOperate() { } /** * 新建目录 * @param folderPath ...
- java 文件复制操作
本案例采用第三方 jar 包完成,commons-io-2.5.jar, 这个 jar 对文件操作非常方便,大家可以尝试使用一下. 这里贴一个简单的 demo 供大家使用 import java.io ...
- java文件复制函数
在写代码中,经常会需要复制文件.这时候就可以把这些函数放到工具类里面. 下面是一个复制文件的函数: public class CopyFileUtil { private static String ...
随机推荐
- DotNet 资源大全中文版
https://blog.csdn.net/fhzh520/article/details/52637545 目录 算法与数据结构(Algorithms and Data structures) 应用 ...
- 【不懂】spring bean生命周期
完整的生命周期(牢记): 1.spring容器准备 2.实例化bean 3.注入依赖关系 4.初始化bean 5.使用bean 6.销毁bean Bean的完整生命週期可以認為是從容器建立初始化Bea ...
- Spark RDD基本概念与基本用法
1. 什么是RDD RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算的集合.RDD具 ...
- 阻塞式I/O实现简单TCP通信
一.技术简介 (1)服务端打开两个端口9999和6666监听外来连接: (2)服务端的子进程通过端口9999监听外来消息,通过端口6666发送消息: (3)客户端的子进程处理外来消息,父进程发送消息 ...
- ****** 四十二 ******、软设笔记【网络基础】-IPv6协议、常用的网络协议
一.IPv6协议 IPv6协议,全称"互联网协议第6版",即下一代的网际协议. 相对于IPv4来说,IPv6协议主要改进: *扩展的地址.IPv6地址长度为128位. *IPv6使 ...
- 利用PHP实现登录与注册功能以及使用PHP读取mysql数据库——以表格形式显示数据
登录界面 <body><form action="login1.php" method="post"><div>用户名:&l ...
- c# 读取excels
DataTable ExcelTable; DataSet ds = new DataSet(); //Excel 文件一般都保存为统一的xls的连接 其 ...
- transition的属性变化
链接:https://www.cnblogs.com/yehui-mmd/p/5934157.html css3——transition属性和opacity属性 [transition-durat ...
- luogu P4770 [NOI2018]你的名字
传送门 upd 19.4.24: WC这个做法真的有问题,不往回跳会WA是因为一开始跳到了S[1...l-1]所对应的点,然后往后接字符的时候可能会因为不在正确的endpos中,然后往回跳过头,其实一 ...
- 【移动端】解决fixed定位闪动问题
经常我们会把导航按钮固定在页面的最底部位置,比如饿了么的首页 但是导航栏在页面滚动的时候会不断的闪动,这样的用户体验非常不好,那么可以使用下面的CSS样式处理一下 transform: transla ...