本帖最后由 hnyzhlq 于 2015-7-11 17:09 编辑
- /**
- * 1.编程实现题
- * 将项目路径下Java_all目录下所有的.java文件复制到项目路径下Java_jad文件夹下,
- * 并将文件扩展名从原来的.java修改成.jad. (要求有思路,有注释,有代码
- */
- /*思路:
- * 1.新建File对象指向Java_all目录,递归获取java_all目录所有文件,获取到文件夹时在目标路径创建同名文件夹
- * 2.通过步骤1获取所有.java绝对路径字符串
- * 3.创建输入流根据字符串数组依次获取文件,并通过输出流将文件输出到对应的.jad文件
- * */
- import java.io.*;
- public class Test1 {
- public static void main(String[]args) throws Exception{
- File fl = new File("d:\\Java_all");
- //两个StringBuilder一个用来存储路径,一个存储文件名
- StringBuilder sb = new StringBuilder();
- getName(fl,sb);
- //将添加绝对路径的StringBuilder去除末尾分割标记并切割为字符串数组
- String[] sarr = sb.substring(0,sb.length()-7).toString().split(",split,");
- copy(sarr);
-
-
- }
- //定义方法获取指定文件夹下的所有.java文件路径
- public static void getName(File fl,StringBuilder sb){
- File[] fla = fl.listFiles();
- for(File f :fla){
- if(f.isDirectory()){
- //在输出路径创建同名文件夹,便于复制文件时寻找路径
- new File(f.getAbsolutePath().replace("Java_all", "Java_jad")).mkdir();
- //如果是文件夹重复调用方法
- getName(f,sb);
- }
- else{
- //判断是否是.java文件
- if(f.getName().endsWith(".java")){
- //将路径添加到sb,并加上分割标记
- sb.append(f.getAbsolutePath()+",split,");
- }
- }
- }
- }
- //定义方法根据路径字符串数组复制文件
- public static void copy(String[] sarr) throws IOException{
- for (int i = 0;i<sarr.length;i++){
- //获取存储路径
- String str = sarr[i].replace("Java_all","Java_jad").replace(".java", ".jad");
- //创建输入流输出流
- BufferedReader br = new BufferedReader(new FileReader(sarr[i]));
- BufferedWriter bw = new BufferedWriter(new FileWriter(str));
- //传输文件
- String len = null;
- while((len=br.readLine()) != null){
- bw.write(len);
- bw.newLine();
- bw.flush();
- }
- //关闭流
- br.close();
- bw.close();
- }
-
- }
- }
复制代码
|