A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 薛灵云 中级黑马   /  2015-8-27 10:13  /  334 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package cn.itcast;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;

public class CopyTxtFileDemo {
       
        /*
         * 复制文件并改名案例
         */
       
        public static void main(String[] args) throws IOException {
               
                // 获取数据源文件夹对象
                File srcFileDir = new File("C:\\Users\\SuperHan\\Desktop\\20150716java基础班相关");
               
                /*
                // 补充一下: 如果不采用文件名称过滤器,一样可以自己去判断实现,但不高大上
                File[] srcFiles = srcFileDir.listFiles();
                // 创建File集合接收符合条件的File对象
                ArrayList<File> list = new ArrayList<File>();
               
                for (File file : srcFiles) {
                        if (file.isFile() && file.getName().endsWith(".txt")) {
                                list.add(file);
                        }
                }
                // 接下来遍历集合获取到每一个File对象,操作与下面一致了。
                */
               
                // 获取数据源文件夹下所有符合条件的文件对象数组 -- 采用文件名称过滤器
                File[] srcFiles = srcFileDir.listFiles(new FilenameFilter() {
                        @Override
                        public boolean accept(File dir, String name) {
                                File file = new File(dir, name); // 根据父目录对象 和 文件名称创建文件对象
                                return file.isFile() && name.endsWith(".txt");
                        }
                });
               
                // 创建目的地文件夹
                File destFileDir = new File("D:\\jad");
                if (!destFileDir.exists()) {
                        destFileDir.mkdir();
                }
               
                // 遍历文件数组,获取到每一个文件
                for (File file : srcFiles) {
                        // 每一个需要拷贝的源文件 -- file
                        // 获取到该文件的名字,以用来创建新文件的名称
                        String name = file.getName();
                        String newName = name.replace(".txt", ".jad");
                       
                        // 把目的地文件拼起来 -- 目的地文件
                        File destFile = new File(destFileDir, newName); // 根据父目录对象 和 文件名称创建文件对象
                       
                        // 有了数据源和目的地,封装流对象
                        BufferedReader br = new BufferedReader(new FileReader(file));
                        BufferedWriter bw = new BufferedWriter(new FileWriter(destFile)); // -- 创建目标文件
                       
                        // 读写操作
                        String line = null;
                        while ((line = br.readLine()) != null) {
                                bw.write(line);
                                bw.newLine();
                                bw.flush();
                        }
                       
                        // 释放资源
                        bw.close();
                        br.close();
                }
        }
}


1 个回复

倒序浏览
顶一下!!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马