黑马程序员技术交流社区
标题:
【记录】代码练习-复制单级文件夹并改名
[打印本页]
作者:
Kevin.Kang
时间:
2015-7-28 17:05
标题:
【记录】代码练习-复制单级文件夹并改名
本帖最后由 Kevin.Kang 于 2015-7-28 17:08 编辑
package com.kxg_2;
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;
/*
* 需求:复制指定文件夹下的指定格式的文件并修改格式。
* D:\T文件夹中的.java格式文件复制到D:\K文件夹并改为.avi格式
*/
public class Copy2 {
public static void main(String[] args) throws IOException {
// 封装数据源
File srcFolder = new File("D:\\T");
// 封装目的地
File destFolder = new File("D:\\K");
// 如果目的地文件夹不存在就创建一个
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对象
for(File srcFile : fileArray)
{
// 获取每个File对象的名字并把.java改为.avi。然后和目的地文件组合成一个目的文件
File destFile = new File(destFolder, srcFile.getName().replace(
".java", ".avi"));
// 把数据源文件的内容复制到目的文件
copyFile(srcFile, destFile);
}
}
private static void copyFile(File srcFile, File destFile)
throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
srcFile));
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(destFile));
byte[] bys = new byte[1024];
int len = 0;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
// 注意释放资源,不释放资源数据就进入不到目的地文件中去
bis.close();
bos.close();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2