注册 登录
编程论坛 JAVA论坛

问题:重新格式化java源代码,将java源代码的次行块风格转换成行尾块风格

bug娃娃 发布于 2019-06-17 18:14, 3527 次点击
package homeWork6;

import java.util.Arrays;
import java.util.Scanner;
import *;

public class T0822 {
   public static void main(String[] args) throws Exception {
   q2();
}
    //重新格式化Java源代码
    static void q2() throws FileNotFoundException {
         File sourceFile = new File("text2.txt");         
         if(!sourceFile.exists()) {
             System.out.println("该文件还不存在");
             System.exit(0);
         }
         try(
             PrintWriter output = new PrintWriter(sourceFile);
         )
         {
             output.print("public class Text");
             output.print("{");
             output.print("public static void main(String[] args)");
             output.print("{");
             output.print("}");
             output.print("}");
         }
         
         StringBuilder str = new StringBuilder();
         Scanner input = new Scanner(sourceFile);
         if(input.hasNext()) {
             String p = input.nextLine();
             String s = p.trim();  //去掉字符串前后的空格
            
             if(s.charAt(0) == '{') {
                 str.append('{');
                 str.append("\r\n");
             }
             else {
                 str.append("\r\n" + p);
             }                 
         }
         input.close();
         
         PrintWriter outPut = new PrintWriter(sourceFile);
         outPut.print(sourceFile.toString());
         outPut.close();
    }
}
我的向我的文件里写东西,写不进去,希望路过的人们帮帮我吧!!!
3 回复
#2
rind2019-06-18 18:01
程序代码:

import java.util.Arrays;
import java.util.Scanner;
import *;

public class T0822 {
   public static void main(String[] args) throws Exception {
   q2();
}
    //重新格式化Java源代码
    static void q2() throws FileNotFoundException {
         File sourceFile = new File("text2.txt");                             //相对路径
         if(!sourceFile.exists()) {
             System.out.println("该文件还不存在");
             System.exit(0);
         }
         try(
             PrintWriter output = new PrintWriter(sourceFile);                //第一次尝试打开文件,写出。
         )
         {
             output.print("public class Text");
             output.print("{");
             output.print("public static void main(String[] args)");
             output.print("{");
             output.print("}");
             output.print("}");
         }
                                                                           

         StringBuilder str = new StringBuilder();
         Scanner input = new Scanner(sourceFile);                            //第二次尝试打开文件,读入。
         if(input.hasNext()) {
             String p = input.nextLine();
             String s = p.trim();  //去掉字符串前后的空格
           

             if(s.charAt(0) == '{') {
                 str.append('{');
                 str.append("\r\n");
             }
             else {
                 str.append("\r\n" + p);
             }               

         }
         input.close();
                                                                             //str变量未使用
         PrintWriter outPut = new PrintWriter(sourceFile);                    //第三次尝试打开文件,写出,不是追加写的模式,会覆盖第一次写出的内容。
         outPut.print(sourceFile.toString());
         outPut.close();
    }
}


#3
bug娃娃2019-06-18 21:18
我是不是该把str再放入文件里?
#4
rind2019-06-19 10:45
回复 3楼 bug娃娃
也可以,但是如果是出于效率考虑,直接在末尾追加可能会更有效率。
程序代码:
// str变量未使用
System.out.println(str);        //打印输出读入内容。
//PrintWriter outPut = new PrintWriter(sourceFile);                    //第三次尝试打开文件,写出,不是追加写的模式,会覆盖第一次写出的内容。
//查看源码,PrintWriter构造方法调用的方法里,可以使用具有追加模式的的FileOutputStream。
PrintWriter outPut = new PrintWriter(new BufferedOutputStream(new FileOutputStream(sourceFile, true)));   



[此贴子已经被作者于2019-6-19 10:50编辑过]

1