将文件夹下java文件写入到新的文件夹,并修改扩展名

原文链接

题目:将d:/code/Java文件夹下的所有.java文件复制到d:/code/java/jad文件夹下并且将原来的文件的扩展名.java改为.jad

源代码:

[java]  view plain  copy
  1. package com.zyh.interview;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileInputStream;  
  5. import java.io.FileOutputStream;  
  6. import java.io.FilenameFilter;  
  7. import java.io.InputStream;  
  8. import java.io.OutputStream;  
  9.   
  10. /** 
  11.  * 将d:/code/java文件夹下的所有.java文件复制到d:/code/java/jad文件夹下 
  12.  * 并且将原来的文件的扩展名.java改为.jad 
  13.  * @author zyh 
  14.  * 
  15.  */  
  16. public class Java2Jad_q112 {  
  17.     public static void main(String[] args) throws Exception {  
  18.         /*第一步:获取文件目录*/  
  19.         File dir = new File("d:/code/java");  
  20.         if(!(dir.exists()&&dir.isDirectory())) {  
  21.             throw new Exception("目录" + dir.getAbsolutePath() + "不存在");  
  22.         }  
  23.         /*第二步:列出该目录下所有的.java文件*/  
  24.         File[] files = dir.listFiles(new FilenameFilter() {  
  25.             //获取.java文件时使用listFiles(FilenameFilter filter)方法,创建一个过滤文件名的Filter  
  26.             @Override  
  27.             public boolean accept(File dir, String name) {  
  28.                 if(name != null && "".equals("")) {  
  29.                     //检测文件名是否是以.java结尾,是返回true,否则继续检测下一个文件  
  30.                     if(name.toLowerCase().endsWith(".java")) {  
  31.                         return true;  
  32.                     }  
  33.                 }  
  34.                 return false;  
  35.             }  
  36.         });  
  37.         /*第三步:获取目标文件夹,如果不存在就建立该文件夹*/  
  38.         File destDir = new File("d:/code/java/jad");  
  39.         if(!destDir.exists()) {  
  40.             destDir.mkdir();  
  41.         }  
  42.         for(File file : files) {  
  43.             System.out.println(file.getName());  
  44.             FileInputStream fis = new FileInputStream(file);  
  45.             /*第四步:将得到的文件名称的扩展名改为.jad*/  
  46.             String destFileName = file.getName().replaceAll("\\.java$""\\.jad");  
  47.             FileOutputStream fos = new FileOutputStream(new File(destDir, destFileName));  
  48.             /*第五步:将文件重新写入目标文件夹*/  
  49.             copy(fis, fos);  
  50.             fis.close();  
  51.             fos.close();  
  52.         }  
  53.     }  
  54.       
  55.     public static void copy(InputStream in, OutputStream out) throws Exception {  
  56.         byte[] buf = new byte[1024];  
  57.         int len = 0;  
  58.         /*读取文件内容并写入文件字节流中*/  
  59.         while((len = in.read(buf))!=-1) {  
  60.             out.write(buf, 0, len);  
  61.         }  
  62.     }  
  63. }  

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值