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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 习惯就好 中级黑马   /  2015-3-6 23:04  /  693 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package com.itheima;
  2. import java.io.BufferedReader;
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileOutputStream;
  6. import java.io.FilenameFilter;
  7. import java.io.InputStreamReader;

  8. /*
  9. * 问题:编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt*/
  10. public class Test9
  11. {
  12.         public static void main(String args[]) throws Exception{  
  13.             System.out.println("请输入文件所在的路径");
  14.         BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  15.         String path=br.readLine();
  16.                // String path = "E:\\test";  
  17.                 File root = new File(path);  
  18.                 //判断路径  
  19.                 if(! root.exists() && root.isDirectory()){  
  20.                     System.out.println("路径有误!");  
  21.                 }  
  22.                 File[] files = root.listFiles(  
  23.                     new FilenameFilter(){  
  24.                         //文件名称过滤  
  25.                         @Override  
  26.                         public boolean accept(File dir, String name) {  
  27.                                 return name.endsWith(".java");  
  28.                         }  
  29.                     }  
  30.                 );  
  31.                   
  32.                 File targetFile = new File("d:\\a");  
  33.                 if(! targetFile.exists()){  
  34.                     //不存在则创建新目录  
  35.                     targetFile.mkdir();  
  36.                 }  
  37.                 for(File file : files){  
  38.                     FileInputStream fis = new FileInputStream(file);  
  39.                     //名称替换  
  40.                     String targetFileName = file.getName().replaceAll("\\.java$", ".txt");  
  41.                     FileOutputStream fos = new FileOutputStream(new File(targetFile, targetFileName));  
  42.                     FileCopy(fis, fos);  
  43.                     fis.close();  
  44.                     fos.close();  
  45.                 }  
  46.                 System.out.println("复制成功!");  
  47.             }  
  48.           
  49.           
  50.             private static void FileCopy(FileInputStream fis, FileOutputStream fos) throws Exception{  
  51.                 byte[] data = new byte[1024];  
  52.                 while(true){  
  53.                     int len = fis.read(data);  
  54.                     if(len == -1){  
  55.                         break;  
  56.                     }  
  57.                     fos.write(data, 0, len);  
  58.                     fos.flush();  
  59.                 }  
  60.             }  
  61. }  
  62. //模仿的练了一下手
复制代码

1 个回复

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