黑马程序员技术交流社区

标题: 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt [打印本页]

作者: bigworld    时间: 2014-8-22 16:17
标题: 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
黑马测试题,还没有学到这。请问怎么做?
编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
作者: 沿途小将    时间: 2014-8-22 17:53
本帖最后由 沿途小将 于 2014-8-22 17:55 编辑

我只提供我的思路;
1,实例文件输入流关联你的.java文件,并读入程序【用到的类有FileReader或者FileInputStream】
2.实例文件输出流关联将要写入的.txt文件(没有的话会自动建立),将你第一步的数据写入、txt文件即可【用到的类有FileWriter或者FileOutputStream】
3,关闭两个流。(有异常)。
作者: xplcc    时间: 2014-8-22 18:23
  1. import java.io.*;
  2. import java.util.*;;
  3. import java.lang.*;


  4. public class UpdateFile
  5. {
  6.         public static void main(String[] args)throws IOException{
  7.           
  8.           
  9.            updateFile("指定目录", "拷贝目录");
  10.           
  11.         }
  12.     /**
  13.          * 将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
  14.          *@param fileDir 文件路径 toDir 存放路径
  15.          */
  16.          public static void updateFile(String fileDir, String toDir) throws IOException{
  17.          
  18.              String filePath = fileDir.replaceAll("\\*", "/");
  19.                  String updatePath = toDir.replaceAll("\\*", "/");

  20.              File file = new File(filePath);
  21.                  
  22.                  if(file.listFiles()!=null){
  23.                  
  24.                     for(File fileChild:file.listFiles()){

  25.                                 if(fileChild.getName().indexOf(".java")!=-1){
  26.                                    //设置新的扩展名
  27.                                    String fileName = fileChild.getName().substring(0,fileChild.getName().indexOf(".java")) + ".txt";

  28.                                    copy(fileChild,updatePath + "/" + fileName);
  29.                                 }
  30.                        
  31.                         }
  32.                  }
  33.              
  34.          }

  35.          /**
  36.          * 复制文件到指定位置
  37.          *
  38.          */
  39.          public static void copy(File fileChild, String fileDir)throws IOException{
  40.          
  41.             File file = new File(fileDir);

  42.                 FileInputStream is =  new FileInputStream(fileChild);
  43.                 FileOutputStream os = new FileOutputStream(file);

  44.                 byte[] buf = new byte[1024];
  45.                 int len;

  46.                 while((len=is.read(buf))!=-1){
  47.                
  48.                      os.write(buf, 0, len);
  49.                 }

  50.                 os.flush();
  51.                 is.close();
  52.                 os.close();
  53.             
  54.          }

  55.          
  56. }
复制代码

作者: zhxu188    时间: 2014-8-22 18:27
这是刚刚写的代码,测试过可以通过,希望能帮到你,加油
作者: zhxu188    时间: 2014-8-22 18:28
  1. package com.heima.test;

  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.util.ArrayList;
  8. import java.util.List;

  9. public class CopyTest {

  10.         /**
  11.          * @param args
  12.          */
  13.         public static void main(String[] args) throws Exception{
  14.                 ArrayList<String> list = new ArrayList<String>();//定义集合存储Java文件的名字
  15.                
  16.                 File src = new File("D:\\test\\java");         //源文件路径
  17.                 File des = new File("D:\\test\\txt");          //目的文件路径
  18.                 if(!des.exists())                              //判断目的文件是否存在,不存在就创建
  19.                         des.mkdirs();
  20.                
  21.                 fileTolist(src,list);                           //将源文件中的Java文件的名字存入到集合中
  22.                 for(String fileName : list){                    //高级for循环遍历集合中Java文件的名字
  23.                         writeTofile(src, des, fileName);            //将源文件中的Java文件存入到目的文件夹中
  24.                 }
  25.         }
  26.        
  27.        
  28.         //将源文件中的Java文件的名字存入到集合中
  29.         public static void fileTolist(File file,List<String> list){
  30.                 File[] files = file.listFiles();              //获取源文件夹中的文件
  31.                
  32.                 for(File f : files){                           //遍历文件并将文件的Java文件的名字存入到集合中
  33.                         list.add(f.getName());
  34.                 }
  35.         }
  36.        
  37.        
  38.         //将源文件中的Java文件存入到目的文件夹中
  39.         public static void writeTofile(File src,File des, String fileName)throws Exception{
  40.                
  41.                 BufferedReader bfr = new BufferedReader(new FileReader(new File(src, fileName)));
  42.                 BufferedWriter bfw = new BufferedWriter(new FileWriter(new File(des,fileName.replace(".java", ".txt"))));
  43.                
  44.                 String line = null;
  45.                 while((line=bfr.readLine())!=null){
  46.                         bfw.write(line);
  47.                         bfw.newLine();
  48.                         bfw.flush();
  49.                 }
  50.                
  51.                 bfw.close();
  52.                 bfr.close();
  53.         }

  54. }
复制代码

作者: c19t043    时间: 2014-8-22 18:49

作者: 小僧玄奘    时间: 2015-1-10 18:10
学习。。。
作者: rehan    时间: 2015-3-1 17:43
将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
作者: xiaodaodan    时间: 2015-5-13 23:09
package examText;



import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;

/**
* 9、 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
*/

public class Test9 {

        public static void main(String[] args) throws Exception{
                ArrayList<String> list = new ArrayList<String>();//定义集合存储Java文件的名字
                File src = new File("E:\\JAVA\\黑马\\exam.doc");//源文件路径
                File des = new File("E:\\JAVA\\黑马\\txt"); //目的文件路径
                if(!des.exists())//判断目的文件是否存在,不存在就创建
                        des.mkdirs();
                 fileTolist(src,list);//将源文件中的Java文件的名字存入到集合中
                 for(String fileName : list){//高级for循环遍历集合中Java文件的名字
                         writeTofile(src, des, fileName);//将源文件中的Java文件存入到目的文件夹中
                 }
        }
       
        //将源文件中的Java文件的名字存入到集合中
        public static void fileTolist(File file,List<String> list){
                 File[] files = file.listFiles();//获取源文件夹中的文件
                 for(File f : files){//遍历文件并将文件的Java文件的名字存入到集合中
                         list.add(f.getName());
                 }
        }
               
           //将源文件中的Java文件存入到目的文件夹中
        public static void writeTofile(File src,File des, String fileName)throws Exception{
                BufferedReader bfr = new BufferedReader(new FileReader(new File(src, fileName)));
                BufferedWriter bfw = new BufferedWriter(new FileWriter(new File(des,fileName.replace(".java", ".txt"))));
                String line = null;
                while((line=bfr.readLine())!=null){
                        bfw.write(line);
                        bfw.newLine();
                        bfw.flush();
                }
                 bfw.close();
                 bfr.close();
               
                }
               


        }

作者: lolser    时间: 2015-6-1 15:38
  1. package exam;
  2. import java.io.*;
  3. /*
  4. * 3、编写程序,将指定目录下所有的.java文件拷贝到另一个目的中,将扩展名改为.txt
  5. */
  6. public class Test3 {
  7. public static void main(String[] args) throws IOException {
  8.         demo();
  9. }
  10. public static void demo() throws IOException{
  11.         File file=new File("H:\\t");
  12.         FileWriter fw=new FileWriter("H:\\txt\\2.txt");
  13.         File arr[]=file.listFiles();
  14.         for(File a:arr){
  15.         if(a.toString().endsWith(".java")){
  16.                 System.out.println(a);
  17.                 fw.write(a.toString());
  18.                
  19.         }else{
  20.                 System.out.println("没有jpg文件");
  21.                 break;
  22.         }
  23.         }
  24.         fw.close();
  25. }

  26. }
复制代码

作者: gaoming971366    时间: 2015-7-22 13:32
package com.itheima;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Scanner;

public class TextCopy {

        /**
         * @param args
         */
        public static void main(String[] args)
        {
                // TODO Auto-generated method stub
               
                Scanner scan =new Scanner(System.in);
                System.out.print("请输入文件的路径及名称:");
                String file=scan.next();
               
                File tempFIle=new File(file.trim());
                String fileName=tempFIle.getName();
                sop("文件为:"+fileName);
               
                BufferedReader bufr=null;
                BufferedWriter bufw=null;
                try
                {
                        bufr=new BufferedReader(new FileReader(file));
                        bufw=new BufferedWriter(new FileWriter("F:Copy.java"));
                        String line=null;
                        while((line=bufr.readLine())!=null)
                        {
                                sop(line);
                                bufw.write(line);
                                bufw.newLine();
                        }
               
                }
                catch(Exception e)
                {
                        e.printStackTrace();
                }
                finally
                {
                        try
                        {
                                if(bufr!=null)
                                        bufr.close();
                        }
                        catch(Exception e)
                        {
                                e.printStackTrace();
                        }
                        try
                        {
                                if(bufw!=null)
                                        bufw.close();
                        }
                        catch(Exception e)
                        {
                                e.printStackTrace();
                        }
                       
                       
                }
       
       
                sop("文件复制成功");
               
        }
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
       
}
今天上午刚写的,希望对你有帮助
作者: 梦龙0201    时间: 2015-9-12 09:18
各路大神真是太厉害了
作者: tsldxszd    时间: 2016-1-12 02:46
本帖最后由 tsldxszd 于 2016-1-12 03:03 编辑


作者: lishihao88    时间: 2016-5-26 18:28
本帖最后由 lishihao88 于 2016-5-26 18:33 编辑
  1. package io;

  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.util.Scanner;

  7. public class IO_Test {

  8.     /**
  9.      * 在控制台输入一个文件夹路径,将这个文件夹下的所有 .java文件拷贝到另一个文件夹并修改名字为 .txt
  10.      * @throws IOException
  11.      */
  12.     public static void main(String[] args) throws IOException {
  13.         File to  = new File("D:\\TXT");                       //创建目的文件夹路径
  14.          if(!to.exists())  {                                    //判断目的文件是否存在,不存在就创建
  15.                   to.mkdirs();
  16.         }
  17.         File dir = getDir();                                       //获取返回的路径
  18.         File [] arr = dir.listFiles();                            //获取路径下所有文件
  19.         for (File f : arr) {                                         //遍历文件数组
  20.             if(f.getName().endsWith(".java")) {       //对每一个文件做判断是否是以.java结尾,是的话进入
  21.                 String s = f.getName().replace(".java", ".txt");         //对文件进行改名
  22.                 FileInputStream fis = new FileInputStream(f);        //创建输入流
  23.                 FileOutputStream fos = new FileOutputStream(new File(to,s));//创建输出流
  24.                 int b ;
  25.                 while((b = fis.read())!=-1) {                        //以下都是io流的核心代码
  26.                     
  27.                     fos.write(b);
  28.                 }
  29.                 fis.close();
  30.                 fos.close();
  31.             }
  32.         }
  33.         
  34.     }

  35.     public static File getDir() {
  36.         Scanner sc = new Scanner(System.in);                        //创建键盘录入对象
  37.         System.out.println("请输入一个文件夹路径");                //温馨提示一下
  38.         while(true) {                                                         //循环判断输入的路径是否合法
  39.         String s = sc.nextLine();                                      //用字符串s记录一下输入的路径
  40.         File dir = new File(s);                                          //创建File对象,传入s
  41.                                                         
  42.         if(dir.isFile()) {                                  //对输入的路径做出判断,是否是文件路径
  43.             System.out.println("您输入的是一个文件路径,请输入一个文件夹路径");
  44.         }else if(!dir.exists()){                                           //是否存在
  45.             System.out.println("您输入的文件夹路径不存在");
  46.         }else {                                                                   //返回一个正确的路径
  47.             return dir;
  48.         }
  49.     }
  50.     }
  51. }
复制代码





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