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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘宣超 中级黑马   /  2014-9-15 21:47  /  1116 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
9、 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
*/

import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
* 9、 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
* @author liuxuanchao
*
*/
public class Test9 {
        public static void main(String[] args) throws IOException{
               
                getCopy("F:\\JAVAheima", "F:\\heima");
       
        }
       
        public static void getCopy(String yuan,String md) throws IOException{
                //指定一个源的目录
                File file1 = new File(yuan);
                //指定目的的目录
                File file2 = new File(md);
                //创建目录
                file2.mkdir();
                //获得源目录下的所有java文件路径。
                OutputStream ops = null;
                InputStream ips = null ;
                //建立输出流
                File[] JAVA = file1.listFiles(new FileFilter() {
                       
                        @Override
                        public boolean accept(File pathname) {
                                // TODO Auto-generated method stub
                                return pathname.getName().endsWith(".java");
                        }
                });
                //遍历所有的java文件路径
                for(File Pathname : JAVA){
                        int index1 = Pathname.getName().lastIndexOf('\\');
                        int index2 =  Pathname.getName().lastIndexOf('.');
                        String name = Pathname.getName().substring(index1+1, index2)+".txt";
                        //获取的路径下的文件名字,把java改成txt。
                        try {//每遍历到一个就读取一个
                                ips = new FileInputStream(Pathname);
                                //建立一个缓冲区
                                byte[] buf = new byte[1024];
                               
                                int len = 0;
                                while((len = ips.read(buf))!=-1){
                                        //把读到的java文件全部输出到了指定的目录下+该该修改过的名字。
                                        ops = new FileOutputStream(file2+"\\"+name);
                                        ops.write(buf);
                                        ops.flush();
                                        //将读取到的数据打印到控制台,调试用的
                                        //System.out.println(new String(buf,0,len));
                                }
                               
                        } catch (FileNotFoundException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                }
                //把文件转过去了,下面我们去修改目的下的文件名,将.java修改成.txt。
                File[] TXT = file2.listFiles(new FileFilter() {
                        //先读取到了目的目录下所有文件的路径返回一个File数组
                        @Override
                        public boolean accept(File pathname) {
                                // TODO Auto-generated method stub
                                return pathname.getName().endsWith(".java");
                        }
                });
                //遍历路径
                for(File Pathname : TXT){
                        //把每个文件的名字都重命名一下将.java改成.txt
                        Pathname.renameTo(new File(file2.toString()+
                                        Pathname.getName().replace(".java", ".txt")));
                }
                //关闭资源。
                ips.close();
                ops.close();
               
               
               
        }
}

评分

参与人数 1黑马币 +3 收起 理由
纷飞尽 + 3 赞一个!

查看全部评分

1 个回复

倒序浏览
多谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马