黑马程序员技术交流社区

标题: 黑马测试题 拷贝文件 [打印本页]

作者: 刘宣超    时间: 2014-9-15 21:47
标题: 黑马测试题 拷贝文件
/*
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();
               
               
               
        }
}

作者: JerryJava    时间: 2014-9-16 07:00
多谢分享




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