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

本帖最后由 汗血黑马 于 2014-3-26 19:13 编辑

能把编程的主要步骤,具体写清楚吗?

14 个回复

正序浏览
一年级生飘过~~
回复 使用道具 举报
这个,,小白表示还有些看不懂,,先去复习再回来看~~~
回复 使用道具 举报
楼主真棒啊
回复 使用道具 举报
  1. import java.io.*;
  2. import java.util.*;
  3. public class Test9 {
  4.         public static void main(String[] args) throws IOException {
  5.                 // TODO Auto-generated method stub
  6.                 File sou = new File("c:\\java");  //源目录
  7.                 File des = new File("c:\\txt");  //目的目录
  8.                 if(!des.exists())
  9.                 {
  10.                         des. mkdirs();
  11.                 }
  12.                 ArrayList<File> al = new ArrayList<File>();
  13.                 fileToList(sou, al);
  14.                 for(File file:al)  //有一个文件就复制一次
  15.                 {
  16.                         writeToFile( des,  file);
  17.                 }
  18.                
  19.         }
  20.         public static void fileToList(File sou, ArrayList<File> al )  //源目录的文件名写到集合中
  21.         {
  22.                 File[] files = sou.listFiles();  //把文件列到数组中,方便遍历
  23.                 for(File file:files)
  24.                 {
  25.                         if(file.isDirectory()) //如果是文件夹
  26.                         {
  27.                                 fileToList(file,al);  //递归调用,取出子目录里的文件
  28.                         }                 
  29.                                 if(file.getName().endsWith(".java"))
  30.                                         al.add(file);                 
  31.                 }
  32.         }
  33.         public static void writeToFile( File des,File file) throws IOException  //把集合中文件写到目的目录中
  34.         {
  35.                 BufferedReader bufr = new BufferedReader(new FileReader(new File(file.getAbsolutePath())));   
  36.                 //创建文件的新方法 File file = new File(File 路径,String 文件名)
  37.                 BufferedWriter bufw = new BufferedWriter(new FileWriter(new File(des,file.getName().replace(".java", ".txt"))));
  38.                 String line = null;
  39.                 while((line = bufr.readLine())!=null)
  40.                 {
  41.                         bufw.write(line);
  42.                         bufw.newLine();
  43.                         bufw.flush();
  44.                 }
  45.                 bufw.close();
  46.                 bufr.close();               
  47.         }

  48. }
复制代码
回复 使用道具 举报
二楼的好强,受教了
回复 使用道具 举报
大神!学习了
回复 使用道具 举报
学习了。
回复 使用道具 举报
二楼的好强!受教了,收藏
回复 使用道具 举报
学习了!!
回复 使用道具 举报
Teale 发表于 2014-3-24 21:23
两部分, 第一部分找到这个.java文件
             第二部分将找到的这个文件改名,然后copy。
里面会用到 ...

程序有问题,用orig.getName().replace(".java", ".txt"),如果文件名里面有.java,也会被替换,应该用正则。
回复 使用道具 举报
public static void main(String[] args) {
          int b = 0;
          FileReader in = null;
          FileWriter out = null;
          try {
            in = new FileReader("d:/HelloWorld.java");
            out = new FileWriter("d:/HW.txt");
            while((b=in.read())!=-1){
              out.write(b);
            }
            out.close();
            in.close();
            
          } catch (FileNotFoundException e2) {
            System.out.println("找不到指定文件"); System.exit(-1);
          } catch (IOException e1) {
            System.out.println("文件复制错误"); System.exit(-1);
          }
          System.out.println("文件已复制");
  }

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报 1 2
两部分, 第一部分找到这个.java文件
             第二部分将找到的这个文件改名,然后copy。
里面会用到递归。 这是我在测试时的代码

  1. package com.itheima;
  2. /** 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt*/
  3. import java.io.*;
  4. public class Test9 {
  5.         public static void main(String[] args) {
  6.                 File orig=new File("C:\\Users\\Administrator\\Desktop\\进阶代码源\\TKDZ\\TKDZ\\Tank\\src\\T1"); //源文件夹
  7.                 File dest=new File("C:\\Users\\Administrator\\Desktop\\进阶代码源\\TKDZ\\TKDZ\\Tank\\src\\存放");//要复制过去的文件夹
  8.                 findAndCopyJava(orig,dest);
  9.                
  10.         }
  11.         public static void copy(File orig,File dest){ //用于改后缀后复制
  12.                 BufferedReader buf = null;
  13.                 PrintWriter  out=null;;
  14.                 try{
  15.                         buf=new BufferedReader(new InputStreamReader(new FileInputStream(orig))); //读取流,提示阅读效率
  16.                         out=new PrintWriter(dest+"\\"+orig.getName().replace(".java", ".txt"));  // 把后缀改成.java,用Print流提升效率
  17.                 }catch(IOException e){
  18.                         System.out.println("文件orig或者dest异常");
  19.                 }
  20.                 String line=null;
  21.                 try{
  22.                 while((line=buf.readLine())!=null){
  23.                         out.println(line);
  24.                 }
  25.                
  26.                 }catch(IOException e){
  27.                        
  28.                 }
  29.                 finally{
  30.                         try{
  31.                                 if(buf!=null)
  32.                                         buf.close();
  33.                                 if(out!=null)
  34.                                         out.close();
  35.                         }catch(Exception e2){
  36.                                
  37.                         }
  38.                 }
  39.         }
  40.         public static void findAndCopyJava(File orig,File dest){  //
  41.                 if(!dest.exists()){            //不存在就创建目的目录,但是这个地址有可能是一个绝对地址。
  42.                         dest.mkdir();
  43.                 }
  44.                 if(!dest.isDirectory()){    //所以再次判断存在的文件是否是一个目录,而不是文件。
  45.                         dest.mkdir();
  46.                 }
  47.                 File[]  files=orig.listFiles();
  48.                 for(File file: files){     //遍历files
  49.                         if(file.isDirectory()){
  50.                                 findAndCopyJava(file,dest);  //递归,一直到file是一个文件而不是目录。
  51.                         }
  52.                         else if(file.getName().endsWith(".java")){
  53.                                 copy(file,dest);
  54.                         }
  55.                 }


  56.         }
  57. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马