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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package test;

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

/**
*  复制文件夹下的所有指定后缀(.JAVA)的文件到别的目录中去,并将这些文件改名为.txt后缀名
*
* @author Janny
*
*/
public class Practice {
        public static void main(String args[]) throws IOException {
                // 创建两个文件
                File file = new File("aaa");
                File fileDest = new File("bbb");
                fileDest.mkdir();
                // 调用方法
                copyFile(file, fileDest);
        }

        private static void copyFile(File file, File fileDest) throws IOException {
                // 要拷贝文件目录下的所有文件
                File[] files = file.listFiles();

                // 循环遍历文件,判断如果是文件的话,直接将文件拷贝到fileDest目录下,
                // 如果是文件夹的话,就递归调用此方法,传入源文件夹名称,和目的文件夹名称。
                for (File file1 : files) {
                        if (file1.isFile()) {
                                // 创建写入的文件,并重新命名为.txt格式的文件
                                File file3 = new File(fileDest,
                                                file1.getName().split("\\.")[0].concat(".txt"));

                                // 创建文件的输入输出流
                                BufferedReader br = new BufferedReader(new FileReader(file1));
                                BufferedWriter bw = new BufferedWriter(new FileWriter(file3));

                                // 将文件读取到另一个文件
                                String s = null;
                                while ((s = br.readLine()) != null) {
                                        bw.write(s);
                                        bw.newLine();
                                }

                                // 关流
                                bw.close();
                                br.close();
                        } else {
                                for (File file2 : file1.listFiles()) {
                                        File file5 = new File(fileDest.getAbsolutePath()
                                                        + File.separator + file1.getName());
                                        copyFile(file2, file5);
                                }
                        }
                }
        }
}

2 个回复

倒序浏览
不错,借鉴一下
回复 使用道具 举报
YOUTA 来自手机 中级黑马 2016-1-5 10:35:54
藤椅
不错的一招
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马