📄 checktext.java
字号:
import java.io.*;
/*
* 假设新生成文档为old.txt,5分钟前生成的文档被保存为old.txt
* 记录按学号排序
*/
public class checkText
{
private String databaseName="";
checkText(String dn)
{
databaseName=dn;
}
public int checking(String txtAddress,String sTime)
{
File fileOld=new File(txtAddress+"old.txt");
File fileNew=new File(txtAddress+"new.txt");
int updateOrNot=0;
if((!fileOld.exists())||(!fileNew.exists()))
{
System.out.println("文件不存在");
System.exit(1);
}
else
{
RandomAccessFile frOld=null;
RandomAccessFile frNew=null;
try
{
frOld=new RandomAccessFile(fileOld,"r");
frNew=new RandomAccessFile(fileNew,"r");
}
catch(FileNotFoundException e){}
String sOld="";
String sNew="";
String tempOld="";
String tempNew="";
String temp="";
int start=0,mid=0,end=0;
long intNoOld=-1L,intNoNew=-1L;
long lOld=0;
int b=0;
int i=1;
String ws="";
dealMessage cutingMessage=new dealMessage();
writeText writeMissionManage=new writeText(databaseName,txtAddress,"MissionManageTemp.txt");
//读取项名称
try
{
if((sNew=frNew.readLine())!=null)
{
mid=sNew.indexOf("\t");
while(mid!=-1)
{
i++;
end=sNew.length();
sNew=cutingMessage.cutMessage(sNew,mid,end);
mid=sNew.indexOf("\t");
}
}
}
catch(IOException e){}
String []item=new String[i];
try
{
if((sOld=frOld.readLine())!=null)
{
for(int j=0;j<i;j++)
{
mid=sOld.indexOf("\t");
end=sOld.length();
if(mid==-1)
{
mid=end;
item[j]=cutingMessage.cutMessage(sOld,start,mid);
}
else
{
item[j]=cutingMessage.cutMessage(sOld,start,mid);
sOld=cutingMessage.cutMessage(sOld,mid,end);
}
}
}
}
catch(IOException e){}
try
{
writeMissionManage.writingMission("Update\t"+sTime+"\t0");
writeMissionManage.writingMission("------------------------------------------");
while((sNew=frNew.readLine())!=null)
{
mid=sNew.indexOf("\t");
tempNew=cutingMessage.cutMessage(sNew,start,mid);b=0;
lOld=frOld.getFilePointer();
while((sOld=frOld.readLine())!=null)
{
b=1;
mid=sOld.indexOf("\t");
tempOld=cutingMessage.cutMessage(sOld,start,mid);
//学号相等
if(tempNew.equals(tempOld))
{
System.out.println(tempNew);
if(!sNew.equals(sOld))
{
ws="alter\t"+tempNew;
end=sNew.length();
sNew=cutingMessage.cutMessage(sNew,mid,end);
end=sOld.length();
sOld=cutingMessage.cutMessage(sOld,mid,end);
i=0;
while(true)
{
i++;
mid=sNew.indexOf("\t");
if(mid==-1)
{
mid=sNew.length();
}
tempNew=cutingMessage.cutMessage(sNew,start,mid);
mid=sOld.indexOf("\t");
if(mid==-1)
{
mid=sOld.length();
}
tempOld=cutingMessage.cutMessage(sOld,start,mid);
if(!tempNew.equals(tempOld))
{
System.out.println(item[i]);
ws+="\t"+item[i]+"\t"+tempOld+"\t"+tempNew;
System.out.println("\t"+tempOld+"->"+tempNew);
}
end=sNew.length();
sNew=cutingMessage.cutMessage(sNew,mid,end);
end=sOld.length();
sOld=cutingMessage.cutMessage(sOld,mid,end);
if(i==(item.length-1))
{
writeMissionManage.insertWriting(ws,sTime);
updateOrNot=1;
break;
}
}
}
break;
}
else
{
intNoOld=Long.parseLong(tempOld);
intNoNew=Long.parseLong(tempNew);
//旧文档中的学号小于新文档中的学号,即旧文档中的该记录在新文档已被删除
if(intNoOld<intNoNew)
{
System.out.println(tempOld+":delete");
ws="delete\t"+tempOld;
writeMissionManage.insertWriting(ws,sTime);
updateOrNot=1;
b=0;
continue;
}
else
{
//新文档中的学号小于旧文档中的学号,即该记录为新记录
if(intNoOld>intNoNew)
{
System.out.println(tempNew+":new");
ws="new\t"+sNew;
writeMissionManage.insertWriting(ws,sTime);
frOld.seek(lOld);
updateOrNot=1;
break;
}
}
}
}
if(b==0)
{
System.out.println(tempNew+":new");
ws="new\t"+sNew;
writeMissionManage.insertWriting(ws,sTime);
updateOrNot=1;
}
}
while((sOld=frOld.readLine())!=null)
{
mid=sOld.indexOf("\t");
tempOld=cutingMessage.cutMessage(sOld,start,mid);
System.out.println(tempOld+":delete");
ws="delete\t"+tempOld;
writeMissionManage.insertWriting(ws,sTime);
updateOrNot=1;
}
frOld.close();
frNew.close();
}
catch(IOException e){}
}
return updateOrNot;
}
public void checkMissionManage(String txtAddress,String sTime,int interval)
{
File file=new File(txtAddress+"MissionManageTemp.txt");
//Key k=null;
if(!file.exists())
{
System.out.println("Open file error!This database's daily is no exit!");
System.exit(1);
}
else
{
RandomAccessFile fr=null;
//k=new Key(txtAddress);
//k.decrypt(txtAddress+"MissionManageTemp.txt");
try
{
fr=new RandomAccessFile(file,"rw");
}
catch(FileNotFoundException e){}
String s="",tempString="",state="";
int start=0,mid=0,i=0;
dealMessage cutingMessage=new dealMessage();
getUpdateTime gut=new getUpdateTime();
sqlOperation so=new sqlOperation();
long l=0,mark=0;
byte insertStr[]=null;
try
{
while((s=fr.readLine())!=null)
{
start=0;
mid=s.indexOf("\t");
if(mid>1)
{
tempString=cutingMessage.cutMessage(s,start,mid);
if(tempString.equals("Update"))
{
start=s.indexOf("\t");
mid=s.lastIndexOf("\t");
tempString=cutingMessage.cutMessage(s,start,mid);
i=gut.oneDayOrNot(tempString,sTime);
if(i>interval)
{
l=fr.getFilePointer();
while((s=fr.readLine())!=null)
{
start=0;
mid=s.indexOf("\t");
if(mid>1)
{
tempString=cutingMessage.cutMessage(s,start,mid);
if(tempString.equals("Update"))
{
break;
}
}
else
{
start=s.lastIndexOf("\t");
mid=s.length();
tempString=cutingMessage.cutMessage(s,start,mid);
i=Integer.parseInt(tempString);
if(i!=1)
{
start=0;
mid=s.lastIndexOf("\t");
s=cutingMessage.cutMessage(s,start,mid);
//用JMS向数据库名字为tempString
s+="\t -1\n";
//邮件发送也没有确认,
insertStr=s.getBytes();
fr.seek(l);
fr.write(insertStr);
}
}
}
}
}
}
}
}
catch(IOException e){}
//k.encryption(txtAddress+"MissionManageTemp.txt");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -