编写一个程序,将 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