自己一直是使用尾行代码风格写java代码,但总是会遇到次行代码风格的java代码,觉得看起来真的是让人不舒服,
于是我想能不能自己写个程序把java代码风格转一下,将次行风格转化为尾行风格。
思路:使用字节流FileInputStream将代码内容全部读取出来,避免只能一行一行的读取。再将其转化成为String字符串,
用replaceAll("\\s{0,}\n\\t{0,}\\{" ,"{"),函数即可完成次行代码风格转化为尾行代码风格的转化。
import java.io.*;
class E25 {
public static void main(String[] args) {
String content = getStringFromFile("test.java");
String newcontent = content.replaceAll("\\s{0,}\n\\t{0,}\\{" ,"{"); //正则表达式子,处理换行和空格和tab字符
WriteStringToFile("test.java",newcontent);
}
public static String getStringFromFile(String fileName) {
String encoding = "UTF-8"; //代码的文件格式
File file = new File(fileName);
Long filelength = file.length();
byte[] filecontent = new byte[filelength.intValue()];
try {
FileInputStream in = new FileInputStream(file); //使用字节流FileInputStream将代码内容全部读取出来,避免只能一行一行的读取
in.read(filecontent);
in.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
return new String(filecontent, encoding); //再将其转化成为String字符串
} catch (UnsupportedEncodingException e) {
System.err.println("The OS does not support " + encoding);
e.printStackTrace();
return null;
}
}
public static void WriteStringToFile(String filePath, String s) {
try {
FileOutputStream fos = new FileOutputStream(filePath);
fos.write(s.getBytes());
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}