📄 utils.java
字号:
package MRL.Utilities;import MRL.Utilities.Partitioning.Path;import java.io.*;import java.util.*;import yab.agent.Condition;import yab.agent.object.*;public abstract class Utils { //saeed 85-2-3 public static int getConditionCount(Collection col , Condition cond){ int res = 0; for(Iterator it = col.iterator();it.hasNext();){ if(cond.eval(it.next())) res++; } return res; } public static void initWriting(){ if(! fileNameSet){ synchronized(dirName){ setNewFileName(); } } } public static void printInFile(String fName, String str) { if(! MRL.MRLConstants.WRITE_MODE ) return; initWriting(); FileWriter fw; try { fw = new FileWriter( dirName+ fName, true); fw.write(str); fw.close(); } catch (Exception ex) { System.out.println(ex); } } public static void setNewFileName() { if(fileNameSet) return; dirName =""; fileNameSet = true; String res = Integer.toString((new java.util.GregorianCalendar()).get(java.util.Calendar.DAY_OF_YEAR)); String tmp = dirBaseName+"/"+res; File f; int i = 0; for(;;i++){ f = new java.io.File(tmp+"_" + i); if(!f.exists()) break; //if(!f.getParentFile().exists()) break; } f.mkdirs(); dirName = tmp + "_" + i + "/"; } private static float [] res = null; public static float [] getAlphasFromFile(){ if(res != null) return res; FileReader fr; String fName = dirBaseName + "InitAlphas.txt"; char [] buff = new char [10000]; try{ fr = new FileReader(fName); fr.read(buff,0,buff.length); fr.close(); } catch (Exception ex){ System.out.print(ex); return null; } String resR = new String(buff); String avgVal=""; int indx = resR.indexOf("#"); if(indx!= -1){ String [] t = resR.split("#"); avgVal= t[1]; } else{ avgVal=resR; } String [] vals = avgVal.split("&"); vals[vals.length-1] = vals[vals.length-1].trim(); res= new float [Path.valCount]; for(int i = 0 ; i < res.length;i++){ System.out.println("vals["+i+"] : " + vals[i]); res[i] = Float.parseFloat(vals[i]); } return res; } private static Collection aiFs = new ArrayList(); private static int count=0; public static boolean writeAlphasToFile(float [] ais,int totalData){ aiFs.add(ais); count++; if(count == totalData){ writeAlphasToFile(); return true; } return false; } protected static boolean writeAlphasToFile(){ if(! MRL.MRLConstants.WRITE_MODE) return false; initWriting(); FileWriter fw; File f,fB; String fName = dirBaseName + "InitAlphas.txt"; String end = dirName.substring(39,dirName.length()-1); System.out.println("end : " + end); String backFN = dirBaseName + "InitAlphas/InitAlphas_" + end +".txt"; String res; try{ f=new File(fName); if(f.exists()) { fB = new File(backFN); f.renameTo(fB); if(! fB.exists()) throw new Error("File Didn't Renamed"); if(f.exists()) throw new Error("File Didn't Renamed"); } float [] ais; float [] avgAis = new float [Path.valCount]; Arrays.fill(avgAis,0f); fw = new FileWriter(fName); for(Iterator it = aiFs.iterator();it.hasNext();){ res =""; ais = (float[]) it.next(); for(int i = 0 ; i < ais.length;i++){ if(i>0) res += "&"; avgAis[i] += ais[i]; res+= Float.toString(ais[i]) ; } res += "\n"; fw.write(res); } res ="#"; for(int i = 0 ; i< avgAis.length;i++){ avgAis[i] /= aiFs.size(); if(i>0) res +="&"; res += Float.toString(avgAis[i]); } fw.write(res); fw.close(); } catch (Exception ex){ System.out.print(ex); return false; } System.out.println("Writing ALPHAS Finished .........................................................."); return true; } private static final String dirBaseName = "/MRL/Rescue Simulation/MRL/Agent/Vals/"; private static boolean fileNameSet = false; private static String dirName = new String(dirBaseName); public final static String vivalfileName = "Vi_Vals.txt"; public final static String pathfileName = "PATH_VALS.txt"; public final static String alphafileName = "ALPHAS.txt"; public final static String msgCenterFileName = "MSGS_CENTR.txt"; public final static String msgAgentFileName = "MSGS_AGENT.txt"; public static int size(Condition cond, ArrayList list) { int result = 0; for (Iterator it = list.iterator(); it.hasNext(); ) { if (cond.eval(it.next())) { result++; } } return result; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -