public String printFormatData(DataItems data) { String ret = ""; StringWriter sw = new StringWriter(); BufferedWriter bw = new BufferedWriter(sw); int numRows = data.getLength(); try { for (int row = 0; row < numRows; row++) { DataItem s = data.getElementAt(row); bw.write(s.toString()); bw.write("\r\n"); } } catch (IOException e) { e.printStackTrace(); } finally { ret = sw.toString(); if (bw != null) try { bw.close(); } catch (Exception ee) { } if (sw != null) try { sw.close(); } catch (Exception ee) { } } return ret; }
// 按照时间,sizeWindow和stepWindow将数据分成项集,再调用Itemset2File写入文件 public static String[] movingdivide(DataItems datainput, TaskElement task, boolean FP) throws IOException { int sizeWindow = (int) ((ParamsSM) task.getMiningParams()).getSizeWindow() * 1000; // seconds int stepWindow = (int) ((ParamsSM) task.getMiningParams()).getStepWindow() * 1000; // seconds int len = datainput.getLength(); List<Date> time = datainput.getTime(); List<String> data = datainput.getData(); List<String> DataSets = new ArrayList<String>(); Date win_start_time = time.get(0); Date win_end_time = getDateAfter(win_start_time, sizeWindow); Date win_start_next = getDateAfter(win_start_time, stepWindow); int ind_next = -1; StringBuilder sb = new StringBuilder(); int i = 0; do { DataItem item = datainput.getElementAt(i); i++; Date date = item.getTime(); String val = item.getData(); if (!date.before(win_start_time) && !date.after(win_end_time)) { if (sb.length() != 0) sb.append(" "); sb.append(val + " -1"); if (!date.before(win_start_next) && ind_next == -1) ind_next = i - 1; } else { sb.append(" -2"); DataSets.add(sb.toString()); sb = new StringBuilder(); if (ind_next == -1) { if (!date.before(getDateAfter(win_end_time, stepWindow))) { win_start_time = date; if (sb.length() != 0) sb.append(" "); sb.append(val + " -1"); } else { win_start_time = win_start_next; // getDateAfter(win_start_time, stepWindow); if (sb.length() != 0) sb.append(" "); sb.append(val + " -1"); } } else { i = ind_next; ind_next = -1; win_start_time = win_start_next; } win_end_time = getDateAfter(win_start_time, sizeWindow); win_start_next = getDateAfter(win_start_time, stepWindow); } } while (i < len); sb.append(" -2"); DataSets.add(sb.toString()); return DataSets.toArray(new String[0]); }
public static DataItems sort(DataItems dataInput) { DataItem datin[] = new DataItem[dataInput.getLength()]; for (int i = 0; i < dataInput.getLength(); i++) { datin[i] = dataInput.getElementAt(i); } Arrays.sort(datin); DataItems di = new DataItems(); di.setItems(datin); return di; }