📄 testparsefile.java
字号:
package pbs.application.iiop.GUI.huadong;
import java.util.*;
import java.io.*;
import java.net.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import pbs.sessionbean.ejb.*;
//import pbs.service.dao.*;
import pbs.service.function.*;
import pbs.service.vo.*;
import pbs.service.struct.*;
import pbs.com.enterprisedt.net.ftp.*;
import pbs.application.iiop.GUI.*;
public class testParseFile {
static huadongData hd = null;
static commonFunc cF = new commonFunc();
static final int REPLACED = 1;
public testParseFile() {
}
public static void main(String[] args) {
testParseFile testParseFile1 = new testParseFile();
Collection allRows = null;
/*
Date mm = new Date();
mm.setTime(System.currentTimeMillis());
System.out.println("the year = "+mm.getYear());
System.out.println("the month = "+mm.getMonth());
System.out.println("the date = "+mm.getDate());
System.out.println("the hour = "+mm.getHours());
System.out.println("the minute = "+mm.getMinutes());
*/
Date m_Date = new Date();
m_Date.setYear(106);
m_Date.setMonth(4);
m_Date.setDate(3);
m_Date.setHours(0);
m_Date.setMinutes(0);
long start_time = pbs.service.function.timeFunc.truncTime(m_Date.getTime() /
1000);
System.out.println("start_time = " + start_time);
allRows = getData("", 77777, start_time);
ArrayList m_list = new ArrayList(allRows);
for (int i = 0; i < m_list.size(); i++) {
}
}
public static Collection getData(String dirName, int debug_no,
long start_time) {
Iterator it = null;
Collection Rows = new ArrayList();
Collection allRows = null;
allRows = readFile(dirName, debug_no, start_time);
ArrayList m_list = new ArrayList(allRows);
System.out.println("一共有 " + m_list.size() + " 块表");
for (int i = 0; i < m_list.size(); i++) {
DataValue m_dd = (DataValue) (m_list.get(i));
PrintOut(m_dd);
System.out.println("///////////////////////////////////////");
}
DataValue tmpdv = null, tmpdv1 = null, tmpdv2 = null;
it = allRows.iterator();
int size = allRows.size();
while (it.hasNext()) {
tmpdv1 = (DataValue) it.next();
tmpdv2 = (DataValue) it.next();
if (tmpdv1.m_display_name.equalsIgnoreCase(tmpdv2.m_display_name)) {
tmpdv = tmpdv2;
}
else {
tmpdv = tmpdv1;
}
for (int i = 0; i < size - 2; i++) {
tmpdv1 = (DataValue) it.next();
if (!tmpdv.m_display_name.equalsIgnoreCase(tmpdv1.m_display_name)) {
Rows.add(tmpdv);
tmpdv = tmpdv1;
}
else {
tmpdv = tmpdv1;
}
}
Rows.add(tmpdv);
}
return Rows;
}
public static Collection readFile(String dirName, int m_debug_no,
long start_time) {
int ret, voNum, count = 0;
String fileName = null;
BufferedReader br = null;
String readStr = null;
String meName = null;
String pre_meName = null;
StringTokenizer st = null;
double values = 0;
int status = 0, type = 0;
int count1 = 0, count2 = 0;
long real_start_time = start_time + Constant.TIME_INTERVAL_QUARTER;
DataValue dv;
String dayStr = null;
dayStr = getDayString(start_time);
dayStr = dayStr.substring(2, 8);
String dataName = "DL" + dayStr + ".dat";
DataValueDetail dvt = null;
int pre_type = 0;
Collection allRows = new ArrayList();
try {
fileName = "D:\\file\\DL060503.dat";
FileReader fr = new FileReader(fileName);
br = new BufferedReader(fr);
readStr = br.readLine();
dv = new DataValue();
dv.m_data_type = 0;
boolean first = true;
String bakString = null;
while ( (readStr = br.readLine()) != null) {
st = new StringTokenizer(readStr);
while (st.hasMoreTokens()) {
meName = st.nextToken();
}
if (!meName.equalsIgnoreCase("0") && !meName.equalsIgnoreCase("1") &&
!meName.equalsIgnoreCase("2") && !meName.equalsIgnoreCase("3") &&
!meName.equalsIgnoreCase("4") && !meName.equalsIgnoreCase("5")) {
System.out.println("meName = " + meName);
if (!first) {
System.out.println("ready to add dv to allRows meName = " +pre_meName);
allRows.add(dv);
real_start_time = start_time + Constant.TIME_INTERVAL_QUARTER;
count2 = 0;
count1 = 0;
values = 0;
status = 0;
pre_type = 0;
type = 0;
}
dv = new DataValue();
dv.m_data_type = 0;
dv.m_display_name = meName;
dv.m_values = new ArrayList();
if (first) {
first = false;
}
pre_meName = meName;
}
else {
ret = readString(readStr);
if (ret > 0) {
type = hd.m_data_type;
if (pre_type == 0 || pre_type == type) {
count1++;
values += hd.m_data_value;
status |= hd.m_data_status;
}
if (count1 == 15) {
count1 = 0;
count2++;
dvt = new DataValueDetail();
dvt.m_value_type = type;
dvt.m_value = values;
if (status == REPLACED) {
status = Constant.PULSE_STATUS_REPLACE;
}
dvt.m_status = status;
dvt.m_raw_value = values;
dvt.m_occur_time = real_start_time;
if (dvt.m_value_type > dv.m_data_type) {
dv.m_data_type = dvt.m_value_type;
}
dv.m_values.add(dvt);
real_start_time += Constant.TIME_INTERVAL_QUARTER;
values = 0;
status = 0;
if (count2 == 96) { //一天一种类型(15分钟一个点)共96个点
count2 = 0;
count1 = 0;
real_start_time = start_time + Constant.TIME_INTERVAL_QUARTER;
}
if (count2 != 96 && pre_type != 0 && pre_type != type) {
count2 = 0;
count1 = 0;
real_start_time = start_time + Constant.TIME_INTERVAL_QUARTER;
}
}
else { //count1!=15但是已经是另外一个类型----某一个类型的数据不全,放弃这个15分钟点
if (pre_type != 0 && pre_type != type && count1 != 1) {
System.out.println("pre_type = " + pre_type + " type = " +type + " count1 = " + count1);
real_start_time = start_time + Constant.TIME_INTERVAL_QUARTER;
System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@不全不全不全 " +dv.m_display_name);
count1 = 0;
count2 = 0;
values = 0;
status = 0;
ret = readString(readStr);
if (ret > 0) {
type = hd.m_data_type;
count1++;
values += hd.m_data_value;
status |= hd.m_data_status;
}
}
}
pre_type = type;
}
}
}
System.out.println("last!!!!!!! ready to add dv to allRows meName = " +pre_meName);
allRows.add(dv);
fr.close();
}
catch (Exception ex) {
processDebug.writeDebug(m_debug_no, "impDumpFile in area Error #1");
DataOutputStream dsex = processDebug.getDebugStream(m_debug_no);
ex.printStackTrace(new PrintStream(dsex));
processDebug.closeDebugStream(dsex);
}
return allRows;
}
static void PrintOut(DataValue dv) {
System.out.println("m_display_name = " + dv.m_display_name +
" m_data_type = " + dv.m_data_type);
ArrayList m_list = new ArrayList(dv.m_values);
for (int i = 0; i < m_list.size(); i++) {
DataValueDetail m_DataValueDetail = (DataValueDetail) (
m_list.get(i));
System.out.print("no: " + new Integer(i + 1) + " ");
System.out.print("m_value_type = " +
m_DataValueDetail.m_value_type + " ");
System.out.print("m_occur_time = " +
getDayStringToMinute(m_DataValueDetail.
m_occur_time) + " ");
System.out.print("m_value = " + m_DataValueDetail.m_value +
" ");
System.out.print("m_status = " + m_DataValueDetail.m_status +
" ");
System.out.print("m_raw_value = " +
m_DataValueDetail.m_raw_value + " ");
System.out.println();
}
System.out.println();
}
static String getDayString(long now_time) {
pbs.service.util.Calendar cal = pbs.service.util.Calendar.getInstance();
String timeStr, yearStr, monthStr, dayStr;
cal.setTimeInMillis(now_time * 1000);
yearStr = (new Integer(cal.get(pbs.service.util.Calendar.YEAR))).toString();
if (cal.get(pbs.service.util.Calendar.MONTH) + 1 < 10) {
monthStr = "0" +
(new Integer(cal.get(pbs.service.util.Calendar.MONTH) + 1)).toString();
}
else {
monthStr = (new Integer(cal.get(pbs.service.util.Calendar.MONTH) + 1)).
toString();
}
if (cal.get(pbs.service.util.Calendar.DAY_OF_MONTH) < 10) {
dayStr = "0" +
(new Integer(cal.get(pbs.service.util.Calendar.DAY_OF_MONTH))).
toString();
}
else {
dayStr = (new Integer(cal.get(pbs.service.util.Calendar.DAY_OF_MONTH))).
toString();
}
timeStr = yearStr + monthStr + dayStr;
return timeStr;
}
static String getDayStringToMinute(long now_time) {
pbs.service.util.Calendar cal = pbs.service.util.Calendar.getInstance();
String timeStr, yearStr, monthStr, dayStr, hourStr, minuteStr;
cal.setTimeInMillis(now_time * 1000);
yearStr = (new Integer(cal.get(pbs.service.util.Calendar.YEAR))).toString();
if (cal.get(pbs.service.util.Calendar.MONTH) + 1 < 10) {
monthStr = "0" +
(new Integer(cal.get(pbs.service.util.Calendar.MONTH) + 1)).toString();
}
else {
monthStr = (new Integer(cal.get(pbs.service.util.Calendar.MONTH) + 1)).
toString();
}
if (cal.get(pbs.service.util.Calendar.DAY_OF_MONTH) < 10) {
dayStr = "0" +
(new Integer(cal.get(pbs.service.util.Calendar.DAY_OF_MONTH))).
toString();
}
else {
dayStr = (new Integer(cal.get(pbs.service.util.Calendar.DAY_OF_MONTH))).
toString();
}
if (cal.get(pbs.service.util.Calendar.HOUR_OF_DAY) < 10) {
hourStr = "0" +
(new Integer(cal.get(pbs.service.util.Calendar.HOUR_OF_DAY))).
toString();
}
else {
hourStr = (new Integer(cal.get(pbs.service.util.Calendar.HOUR_OF_DAY))).
toString();
}
if (cal.get(pbs.service.util.Calendar.MINUTE) < 10) {
minuteStr = "0" +
(new Integer(cal.get(pbs.service.util.Calendar.MINUTE))).
toString();
}
else {
minuteStr = (new Integer(cal.get(pbs.service.util.Calendar.MINUTE))).
toString();
}
timeStr = yearStr + monthStr + dayStr + " " + hourStr + ":" + minuteStr;
return timeStr;
}
public static int readString(String conStr) {
int ret;
StringTokenizer st = null;
String tmpString = null;
hd = null;
if (conStr == null) {
return -1;
}
st = new StringTokenizer(conStr);
while (st.hasMoreTokens()) {
hd = new huadongData();
tmpString = st.nextToken();
hd.m_data_type = Integer.parseInt(tmpString);
if (hd.m_data_type != 1 && hd.m_data_type != 2) {
return -1;
}
tmpString = st.nextToken();
tmpString = st.nextToken();
hd.m_data_value = Double.parseDouble(tmpString);
tmpString = st.nextToken();
hd.m_data_status = Integer.parseInt(tmpString);
}
return 1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -