IO流(9)复制指定文件夹下指定文件到目的文件夹,并改名
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
/*
* 需求:复制指定目录下的指定文件,并修改后缀名。
* 指定的文件是:.java文件。
* 指定的后缀名是:.jad
* 指定的目录是:jad
*
* 数据源:e:\\java\\A.java
* 目的地:e:\\jad\\A.jad
*
* 分析:
* A:封装目录
* B:获取该目录下的java文件的File数组
* C:遍历该File数组,得到每一个File对象
* D:把该File进行复制
* E:在目的地目录下改名
*/
public class CopyFolderDemo {
public static void main(String[] args) throws IOException {
// 封装目录
File srcFolder = new File("e:\\java");
// 封装目的地
File destFolder = new File("e:\\jad");
// 如果目的地目录不存在,就创建
if (!destFolder.exists()) {
destFolder.mkdir();
}
// 获取该目录下的java文件的File数组
File[] fileArray = srcFolder.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return new File(dir, name).isFile() && name.endsWith(".java");
}
});
// 遍历该File数组,得到每一个File对象
for (File file : fileArray) {
// System.out.println(file);
// 数据源:e:\java\DataTypeDemo.java
// 目的地:e:\\jad\DataTypeDemo.java
String name = file.getName();
File newFile = new File(destFolder, name);
copyFile(file, newFile);
}
// 在目的地目录下改名
File[] destFileArray = destFolder.listFiles();
for (File destFile : destFileArray) {
// System.out.println(destFile);
// e:\jad\DataTypeDemo.java
// e:\\jad\\DataTypeDemo.jad
String name =destFile.getName(); //DataTypeDemo.java
String newName = name.replace(".java", ".jad");//DataTypeDemo.jad
File newFile = new File(destFolder,newName);
destFile.renameTo(newFile);
}
}
private static void copyFile(File file, File newFile) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));
byte[] bys = new byte[1024];
int len = 0;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
bos.close();
bis.close();
}
}
最新文章
- Android 手机卫士--获取联系人信息并显示与回显
- [python实现设计模式]-5.迭代器模式-一起撸串嗨皮啦
- React Native填坑之旅--LayoutAnimation篇
- 手机wifi密码的保存位置
- Burpsuite教程与技巧之HTTP brute暴力破解
- 贪心 HDOJ 4726 Kia's Calculation
- CSS3 Transform Matrix
- android 回调函数的使用
- jcarousellite 实现图片列表滚动
- sqlite数据库读写在linux下的权限问题
- linux segmentation fault记录
- 70、django之Ajax初识
- sqlsever 科学计数法 转标准值
- centOS7.3安装配置NFS服务
- 将ant Design本地化,可通过link以及script直接引入html中使用
- Axure 设置条件的操作
- LRN
- LeetCode: Roman to Integer 解题报告
- [转] CSocket 和CAsyncSocket类介绍
- IOS开发使用GCD后台运行
热门文章
- Ansible Playbook 简介
- Unity弹出MessageBox
- 【译】Kafka最佳实践 / Kafka Best Practices
- Kafka一些常见资源汇总
- 关于GDI+的一些使用基础设置
- Java网络编程之查找Internet地址
- django进阶-modelform&;admin action
- 浅谈CSS盒子模型
- Big Spatio temporal Data(R-tree Index and NN &; RNN &; Skyline)
- 题目1076:N的阶乘(大数乘法)