黑马程序员技术交流社区

标题: 一道面试题,求解 [打印本页]

作者: l落落落叶    时间: 2015-4-28 07:41
标题: 一道面试题,求解
编写一个程序,我想把这个目录下的所有的带.java文件拷贝到另一个目录中,拷贝成功以后,把后缀名是.java改成.txt
作者: 突然世界晴    时间: 2015-4-28 08:41
回去看IO流视频吧。
作者: 彭春晓    时间: 2015-4-28 08:42

回去看IO流视频吧。
作者: major2015    时间: 2015-4-28 09:02
额,考的就是这题
思路是查找目录下java文件时使用过滤器,然后复制到新目录时获取该文件名用replace改名存储,就是这样了。

ps:我当时运行没出来。。。囧
作者: l落落落叶    时间: 2015-4-28 09:11
是不是用递归把目录中的文件打印到一个文本文件
作者: 海带    时间: 2015-4-28 09:55
class DemoTest{
         public static void main(String[] args){
         showFile();
         }
         public static void showFile(){
                File file = new File("E:\\Exam\\src\\com\\itheima");
                String[] str = file.list();
                for(String strs:str ){
                       
                        System.out.println(strs.replaceAll(".java", ".txt"));
                }
        }
}

运行结果
Test1.txt
Test10.txt
Test2.txt
Test3.txt
Test4.txt
Test5.txt
Test6.txt
Test7.txt
Test8.txt
Test9.txt

作者: fc389119336    时间: 2015-4-28 09:57
:o还没看到。。感觉好复杂
作者: l落落落叶    时间: 2015-4-28 10:43
找到解决办法了,还是练的少,感觉脑子不够用啊
作者: yearn    时间: 2015-4-28 16:25
还没看到IO这里呢!
作者: 吕晓阳    时间: 2015-4-28 16:54
是面试题吗?这得写多少代码!
作者: 王烽棋    时间: 2015-4-28 17:29
哥们儿你这样高调提问很容易被管理员发现屏蔽的;P,答案在这,这是替你加的注释版赶快收藏:handshake
  1. package com.itheima;

  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.File;
  5. import java.io.FileReader;
  6. import java.io.FileWriter;
  7. import java.io.FilenameFilter;
  8. import java.io.IOException;


  9. /**
  10. * 1,编写一个程序,我想把这个目录下的所有带.java文件拷贝到另一个目录下,拷贝成功以后把后缀名是.java改成.txt
  11. * @author wfq
  12. *
  13. */
  14. public class Test {

  15.         public static void main(String[] args) throws IOException {
  16.                 //文件所在文件夹
  17.                 File file = new File("tempfile\\");
  18.                 //目标文件夹
  19.                 File file2 = new File("tempfile\\abc\\");
  20.                
  21.                 copyDemo(file,file2);
  22.                
  23.                
  24.         }

  25.         public static void copyDemo(File file, File targ){
  26.                 //判断访问的目录是否存在
  27.                 if(file==null)
  28.                         throw new NullPointerException("访问的目录不存在..");
  29.                 //对目标目录进行判断,如果不存在就创建
  30.                 if (!targ.exists()) {
  31.                         targ.mkdir();
  32.                 }
  33.                 //列出访问目录下所有符合过滤条件的文件
  34.                 File[] files = file.listFiles(new FilterByName());
  35.                 //创建读写流复制文件
  36.                 BufferedReader bfr = null;
  37.                 BufferedWriter bfw = null;
  38.                
  39.                
  40.                    try {
  41.                             for (File file2 : files) {
  42.                                bfr = new BufferedReader(new FileReader(file2));
  43.                                //利用正则表达式修改复制后的文件名
  44.                                bfw = new BufferedWriter(new FileWriter(new File(targ,file2.getName().replaceAll("\\.java", ".txt"))));
  45.                        
  46.                           String len = null;
  47.                           while ((len=bfr.readLine())!=null) {
  48.                                   bfw.write(len);
  49.                                   bfw.newLine();
  50.                                   bfw.flush();
  51.                                }
  52.                        }
  53.                 }catch (IOException e) {
  54.                 }finally {
  55.                         if(bfr!=null)
  56.                         try {
  57.                                 bfr.close();
  58.                         } catch (IOException e) {
  59.                                 // TODO Auto-generated catch block
  60.                                 e.printStackTrace();
  61.                         }
  62.                         if(bfw!=null)
  63.                         try {
  64.                                 bfw.close();
  65.                         } catch (IOException e) {
  66.                                 // TODO Auto-generated catch block
  67.                                 e.printStackTrace();
  68.                         }
  69.                 }
  70.                   
  71.         }
  72. }
  73. //.java文件的过滤器
  74. class FilterByName implements FilenameFilter{
  75.         @Override
  76.         public boolean accept(File dir, String name) {
  77.                
  78.                 return name.endsWith(".java");
  79.         }
  80.        
  81. }
复制代码





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