/** * <p>Copyright: Copyright (c) 2009</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.engin.format; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; /** *�����ʽ������ * */ public class FormaterUtil { public static String FORMATER_EXE_PATH = "format/Uncrustify.exe"; public static String FORMATER_FOLDER_PATH = "format/"; public static String FORMATER_EXE_WORK_PATH = FORMATER_FOLDER_PATH + "Uncrustify.exe"; public static String FORMATER_CONFIG_PATH = "format/default.cfg"; public static String FORMATER_CONFIG_WORK_PATH = FORMATER_FOLDER_PATH + "default.cfg"; public static long FORMATER_LASTMODIFIED = 1224494894000l; //1218423569906l;//��ǰ�����ʽ�����߰汾�� public static void copyFormaterExeToWorkSpace() { try { InputStream is = FormaterUtil.class.getClassLoader().getResource( FORMATER_EXE_PATH).openStream(); File formaterExeFile = new File(FORMATER_EXE_WORK_PATH); if (!formaterExeFile.exists()) { File folder = new File(FORMATER_FOLDER_PATH); if (!folder.exists()) { folder.mkdir(); } formaterExeFile.createNewFile(); } DataInputStream read = new DataInputStream(new BufferedInputStream( is)); DataOutputStream write = new DataOutputStream( new BufferedOutputStream(new FileOutputStream( formaterExeFile))); byte[] temp = new byte[1024];//����exe�ļ����ֽ��� int i; while ((i = read.read(temp)) != -1) { write.write(temp); } read.close(); write.close(); is.close(); } catch (IOException ioEx) { System.out.println(ioEx); } } public static void copyConfigToWorkSpace() { try { InputStream is = FormaterUtil.class.getClassLoader().getResource( FORMATER_CONFIG_PATH).openStream(); File formaterConfigFile = new File(FORMATER_CONFIG_WORK_PATH); if (!formaterConfigFile.exists()) { File folder = new File(FORMATER_FOLDER_PATH); if (!folder.exists()) { folder.mkdir(); } formaterConfigFile.createNewFile(); } BufferedReader reader = new BufferedReader( new InputStreamReader(is)); String line = reader.readLine(); FileWriter writer = new FileWriter(formaterConfigFile); while (line != null) { writer.write(line + "/n"); line = reader.readLine(); } writer.flush(); writer.close(); reader.close(); is.close(); } catch (IOException ioEx) { System.out.println(ioEx); } } public static void copyFormater() { File formaterExeFile = new File(FORMATER_EXE_WORK_PATH); if (!formaterExeFile.exists()) { copyFormaterExeToWorkSpace(); } else if(formaterExeFile.lastModified() < FORMATER_LASTMODIFIED)//�汾���� { System.out.println("exe�汾��:" + formaterExeFile.lastModified()); copyFormaterExeToWorkSpace(); formaterExeFile.setLastModified(FORMATER_LASTMODIFIED); } File formaterConfigFile = new File(FORMATER_CONFIG_WORK_PATH); if (!formaterConfigFile.exists()) { copyConfigToWorkSpace(); } else if(formaterConfigFile.lastModified() < FORMATER_LASTMODIFIED)//�汾���� { System.out.println("config�汾��:" + formaterConfigFile.lastModified()); copyConfigToWorkSpace(); formaterConfigFile.setLastModified(FORMATER_LASTMODIFIED); } } public static StringBuffer getFirstBlank(String origionStr) { StringBuffer blank = new StringBuffer(); for (int i = 0;i<origionStr.length();i++){ if(origionStr.charAt(i) == ' ' || origionStr.charAt(i) == '\t'){ blank.append(origionStr.charAt(i)); }else{ break; } } return blank; } }