黑马程序员技术交流社区

标题: 复制文件夹下的所有指定后缀(.JAVA)的文件到别的目录中去,并改名为.txt后缀名 [打印本页]

作者: 1158147908    时间: 2016-1-4 23:59
标题: 复制文件夹下的所有指定后缀(.JAVA)的文件到别的目录中去,并改名为.txt后缀名
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);
                                }
                        }
                }
        }
}

作者: yi651312197    时间: 2016-1-5 10:19
不错,借鉴一下
作者: YOUTA    时间: 2016-1-5 10:35
不错的一招




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2