编写一个程序,将 d: java 目录下的所有.java 文件复制到d: jad 目录下,并 将原来文件的扩展名从.java 改为.jad

Posted 雪落无痕1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写一个程序,将 d: java 目录下的所有.java 文件复制到d: jad 目录下,并 将原来文件的扩展名从.java 改为.jad相关的知识,希望对你有一定的参考价值。

1.编写一个程序,将 d: \ java 目录下的所有.java 文件复制到d: \ jad 目录下,并 将原来文件的扩展名从.java 改为.jad

 

package copy;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class CopyTest {
           public static void main(String[] args) throws Exception {
            File file=new File("D:\\java");
            //判断目录是否存在
            if(!(file.exists()&&file.isDirectory())){
                throw new Exception("目录不存在");
            }
            // 找到文件夹下面的 .java 文件
            File[] files=file.listFiles(new FilenameFilter() {
                public boolean accept(File dir, String name) {
                    // TODO Auto-generated method stub
                    return name.endsWith(".java");
                }
            });
            System.out.println(files.length);
            // 复制文件
            // 找到目标目录
            File targetfile=new File("D:\\jad");
            //判断目录是否存在,不存在创建
            if(!(targetfile.exists()&&targetfile.isDirectory())){
                targetfile.mkdirs();
            }
            // 替换文件名字
            for(File f:files){
//                1.使用文件流实现文件复制
                String targetFilename=f.getName().replace(".java", ".jad");
//                FileInputStream in=new FileInputStream(f);
//                FileOutputStream out=new FileOutputStream(new File(targetfile,targetFilename));
//                copy(in,out);
//                2.使用缓冲流加快读写效率
                BufferedInputStream bis=new BufferedInputStream(new FileInputStream(f));
                BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(new File(targetfile,targetFilename)));
                CopyDemo2(bis,bos);
            }
            
        }
           
           /**
            * 使用文件流实现文件复制
            * @author smy
            * @throws Exception 
            */
        public static void copy(InputStream in,OutputStream out) throws Exception{
            byte[] data = new byte[1024*10];
            int len = -1;
            while((len = in.read(data))!=-1){
                out.write(data,0,len);
            }    
            
            in.close();
            out.close();
        }
           
        /**
         * 使用缓冲流加快读写效率
         * 
         * 缓冲流是一对高级流,使用它们可以提高读
         * 写效率。
         * 
         * 高级流:高级流用来处理其他流,高级流不能
         * 独立存在,因为没有意义,使用高级流的目的
         * 是为了解决某些读写操作的复杂度。简化我们
         * 的读写操作。
         * 
         * 低级流:数据源明确,真实负责读写数据的流。
         * 
         * 读写操作一定需要低级流,但不一定非要使用
         * 高级流。
         * @author SMY
         * @throws Exception 
         */
        public static void CopyDemo2(InputStream bis,OutputStream bos) throws Exception{
            int d = -1;
            /*
             * 缓冲流内部维护了一个字节数组作为
             * 缓冲。当我们调用read()方法读取一个
             * 字节时,缓冲流会一次性读取若干字节
             * 并存入缓冲区,然后返回第一个字节,当
             * 我们再次调用read方法读取一个字节时,
             * 它会立即将缓冲区中第二个字节返回,
             * 直到所有字节都返回后,才会再次发生
             * 实际的读取操作,读取一组字节放入缓冲
             * 区。
             * 所以本质上还是通过一次读取若干字节,
             * 减少读取次数提高的读取效率。
             */
            while((d=bis.read())!=-1){
                bos.write(d);
            }
            bis.close();
            bos.close();    
        }
        
}

 

以上是关于编写一个程序,将 d: java 目录下的所有.java 文件复制到d: jad 目录下,并 将原来文件的扩展名从.java 改为.jad的主要内容,如果未能解决你的问题,请参考以下文章

编写一个程序将d:java目录下的所有.java文件复制到d:jad目录下,并将原来文件的扩展名从.java改为.jad

Java算法面试题:编写一个程序,将e: eck目录下的所有.java文件复制到e:jpg目录下,并将原来文件的扩展名从.java改为.jpg

怎么用codeblocks编写c语言的图形程序

用java写一个代码实现: 如何列出某个目录下的所有子目录

01.编写第一个java程序

java中怎么import其他路径下的类呢?