自己一直是使用尾行代码风格写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(); } } }