就是我想把一个java文件,考到另一个指定目录下,要求不能将该java文件中的空白行还有注释拷过去,望大虾赐教,谢谢了~~~

解决方案 »

  1.   

    简单的写了个,就是if判断再处理。我觉得读文件是至少的,因为你对内容有要求。import java.io.*;public class FileCopy {
    private static File source, target;

    private static void copyWithoutCommentsAndBlank(File source, File target){
    try{
    BufferedReader br = new BufferedReader(new FileReader(source));
    BufferedWriter bw = new BufferedWriter(new FileWriter(target));

    String text;

    while((text = br.readLine())!= null){
    if(text.matches("\\s*\n?\t*"))
    continue;

    if(text.matches("\\s*\t*.*//.*\n?")){ //处理行注释"//"与代码混合的情况
    text = text.split("//")[0];

    if("\\s*\t*".equals(text)|"".equals(text))
    continue;
    }

    if(text.startsWith("/*")|text.startsWith("*")|text.endsWith("*/")){ //处理段落注释"/*...*/",我默认段落注释是不会夹杂在代码中的
    continue;
    }
    System.out.println(text);
    bw.write(text);
    bw.newLine();
    }
    bw.close();
    }catch(IOException ioException){
    System.err.println("Error!");
    }
    }

    public static void main(String args[]){
    source = new File("C:/Java-Justin/USA/src/A.java");
    target = new File("C:/B.java");

    copyWithoutCommentsAndBlank(source, target);
    System.out.println("\nFINISH!");
    }
    }
    原文件:public class A{ 
    /*
    *
    */
    public static int doFactorial(int n,int sum) { 
      if (n < 0){ 
          return -1; 

    if (n == 0) { 
    // 0!=1 
      return 1; 
    } else if (n == 1) { 
    System.out.println(sum+1); 
    // 退出递归的条件 
    return 1; 

    else {// 满足进行递归的条件 
      sum=sum+n*doFactorial(n-1,0); 
      
      return n *doFactorial(n - 1,sum); 


    public static void main(String [] args){ 
      System.out.println(doFactorial(4,0)); 

    }目标文件:public class A{ 
    public static int doFactorial(int n,int sum) { 
      if (n < 0){ 
          return -1; 

    if (n == 0) { 
      return 1; 
    } else if (n == 1) { 
    System.out.println(sum+1); 
    return 1; 

    else {
      sum=sum+n*doFactorial(n-1,0); 
      return n *doFactorial(n - 1,sum); 


    public static void main(String [] args){ 
      System.out.println(doFactorial(4,0)); 

    }