java 文件复制操作
本案例采用第三方 jar 包完成,commons-io-2.5.jar,
这个 jar 对文件操作非常方便,大家可以尝试使用一下。
这里贴一个简单的 demo 供大家使用
import java.io.File;
import java.io.IOException; import org.apache.commons.io.FileUtils; public class MyFileUtils {
public static void main(String[] args) throws IOException { String srcPath = "F:/copyFile/src";
String destPath = "F:/copyFile/dest123";
copyFile(srcPath, destPath); // copyDirectory(srcPath, destPath);
// readFileToString(srcPath);
} // 创建文件夹
public static void makeDir(String destPath) {
File newFilePath = new File(destPath);
if (!newFilePath.exists()) {
newFilePath.mkdirs();
}
} // 复制文件夹及其内容
public static void copyDirectory(String srcPath, String destPath) throws IOException {
File file = new File(srcPath);
makeDir(destPath);
File destFile = new File(destPath);
FileUtils.copyDirectory(file, destFile);
} // 复制文件(应用场景:复制的同时更改文件名称)
public static void copyFile(String srcPath, String destPath) throws IOException {
File src = new File(srcPath);
makeDir(destPath);
File[] srcFiles = src.listFiles();
if (srcFiles.length > 0) {
for (File file : srcFiles) {
String filename = file.getName();
if (file.isDirectory()) {
copyFile(file.getAbsolutePath(), destPath);
}
if (filename.endsWith("html")) {
int index = filename.indexOf(".");
String newFileName = filename.substring(0, index) + "复制" + filename.substring(index);
File destFile = new File(destPath + "/" + newFileName);
FileUtils.copyFile(file, destFile);
}
}
}
} // 把文件 内容转成字符串
public static void readFileToString(String srcPath) throws IOException {
File src = new File(srcPath);
File[] srcFiles = src.listFiles();
if (srcFiles.length > 0) {
for (File file : srcFiles) {
String filename = file.getName();
if (file.isDirectory()) {
readFileToString(file.getAbsolutePath());
}
if (filename.endsWith("html")) {
String str = FileUtils.readFileToString(file, "utf-8");
System.out.println(str);
}
}
}
}
}
简单说明一下,
复制文件,包含文件夹 用到 FileUtils.copyDirectory(file, destFile);
复制单个文件 FileUtils.copyFile(file, destFile);
把文件内容读取为字符串 FileUtils.readFileToString(file, "utf-8");
java 文件复制操作的更多相关文章
- Java基础面试操作题: File IO 文件过滤器FileFilter 练习 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件
package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...
- [转]Windows系统中监控文件复制操作的几种方式
1. ICopyHook 作用: 监视文件夹和打印机移动,删除, 重命名, 复制操作. 可以得到源和目标文件名. 可以控制拒绝操作. 缺点: 不能对文件进行控制. 只对Shell文件操作有效, 对原生 ...
- IO复制多级目录 控制台输入文件目录然后把目录下java文件复制到 D: 并统计java个数
package cn.itcast_05; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...
- Windows系统中监控文件复制操作的几种方式
http://blog.sina.com.cn/s/blog_4596beaa0100lp4y.html 1. ICopyHook 作用: 监视文件夹和打印机移动,删除, 重命名, 复制操作. 可以得 ...
- 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文件复制删除操作合集
import java.io.*; public class FileOperate { public FileOperate() { } /** * 新建目录 * @param folderPath ...
- JAVA File方法各类文件复制操作
import java.io.*; public class AllFile { public static void main(String[] args) throws Exception {// ...
- Java文件IO操作应该抛弃File拥抱Paths和Files
Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream;import java.nio.file.FileSystem; ...
随机推荐
- QT5:先导篇 全局定义
一.简介 <QtGlobal>头文件包含了Qt类库的一些全局定义,包含基本数据类型 函数和宏 二.全局变量定义 <QtGlobal>定义的数据类型: Qt数据类型 ...
- remote: Incorrect username or password ( access token ) fatal: Authentication failed for
gitee推送到远程仓库时提示错误remote: Incorrect username or password ( access token )fatal: Authentication failed ...
- 【转载】K-mer算法
k-mer是指将reads分成包含k个碱基的字符串,一般长短为m的reads可以分成m-k+1个k-mers.举个例子吧,为了简化,有这么个reads(当然实际比这个长):AACTGACTGA.如果k ...
- synchronized 和ReentrantLock的区别
历史知识:JDK5之前,只有synchronized 可以用,之后就有了ReetrantLock可以用了 ReetrantLock (再入锁) 1.位于java.util.concurrnt.lock ...
- Java中的日期(Calendar、Date)
(1)获取当前日期: java.util.Calendar calendar = java.util.Calendar.getInstance(); 或 = new java.util.Gregor ...
- 【简●解】 LG P2730 【魔板 Magic Squares】
LG P2730 [魔板 Magic Squares] [题目背景] 在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板.这是一张有8个大小相同的格子的魔板: 1 2 3 4 8 7 6 ...
- HashMap允许将null用作键 也允许将null作为值
HashMap不能保证元素的顺序,HashMap能够将键设为null,也可以将值设为null. 与之对应的是Hashtable,(注意大小写:不是HashTable),Hashtable不能将键和值设 ...
- 【cookie】【浏览器】各大浏览器对cookie的限制
- Lex与Yacc学习(四)之Lex规范
Lex规范的结构 lex程序由三部分组成:定义段.规则段和用户子例程序段 ...定义段... %% ...规则段... %% ...用户子例程序段... 这些部分由以两个百分号组成的行分隔开.尽管某一 ...
- python基础——16(re模块,内存管理)
一.内存管理 1.垃圾回收机制 不能被程序访问到的数据,就称之为垃圾. 1.1.引用计数 引用计数是用来记录值的内存地址被记录的次数的. 每一次对值地址的引用都使该值的引用计数+1:每一次对值地址的释 ...