⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 writetext.java

📁 一个用于实现不同数据库数据同步的程序
💻 JAVA
字号:
import java.io.*;
import java.util.*;

public class writeText
{
	private String databaseName="";
	private String txtAddress="";
	private String txtName="";

	writeText(String dn,String ta,String tn)
	{
		databaseName=dn;
		txtAddress=ta;
		txtName=tn;
	}
	
	public void writingDaily(String updateMessage) throws IOException
	{
		String enter="\r\n";
		int enterLength=enter.length();

		String uMessage=updateMessage;

		File file=new File(txtAddress+txtName);
		FileWriter fw=null;
		char buffer[]=null;

		try
		{
			fw=new FileWriter(file,true);
		}
		catch(FileNotFoundException e){}

		buffer=new char[150-enterLength];
		uMessage.getChars(0,uMessage.length(),buffer,0);
		fw.write(buffer);

		buffer=new char[enterLength];
		enter.getChars(0,enterLength,buffer,0);
		fw.write(buffer);

		fw.close();

	}

	public void writingMission(String updateMessage) throws IOException
	{
		String enter="\r\n";
		int enterLength=enter.length();

		String uMessage=updateMessage;

		File file=new File(txtAddress+txtName);
		FileWriter fw=null;
		char buffer[]=null;
		//Key k=null;

		//k=new Key(txtAddress);
		//k.decrypt(txtAddress+txtName);

		try
		{
			fw=new FileWriter(file,true);
		}
		catch(FileNotFoundException e){}

		buffer=new char[150-enterLength];
		uMessage.getChars(0,uMessage.length(),buffer,0);
		fw.write(buffer);

		buffer=new char[enterLength];
		enter.getChars(0,enterLength,buffer,0);
		fw.write(buffer);

		fw.close();

		//k.encryption(txtAddress+txtName);
	}

	public int insertWriting(String updateMessage,String ntime) throws IOException
	{
		String enter="\r\n";
		int enterLength=enter.length();
		byte insertEnter[]=new byte[enterLength];
		enter.getBytes(0,enterLength,insertEnter,0);

		String uMessage=updateMessage;
		File file=new File(txtAddress+txtName);

		//Key k=new Key(txtAddress);
		int i=0,start=0,mid=0;
		dealMessage cutingMessage=new dealMessage();

		if(!file.exists())
		{
			System.out.println("Open file error!This database's daily is no exit!");
		}
		else
		{
			RandomAccessFile fr=null;
			byte insertStr[]=null;
			String s="",temp="";
			long l=0;
			
			try
			{
				//k.decrypt(txtAddress+txtName);
				fr=new RandomAccessFile(file,"rw");

				l=fr.getFilePointer();
				while((s=fr.readLine())!=null)
				{
					start=0;
					mid=s.indexOf("\t");
					if(mid>1)
					{
						start=mid;
						mid=s.length();
						s=cutingMessage.cutMessage(s,start,mid);

						start=0;
						mid=s.indexOf("\t");
						temp=cutingMessage.cutMessage(s,start,mid);

						if(temp.equals(ntime))
						{
							l=fr.getFilePointer();
							while((s=fr.readLine())!=null)
							{
								if((s.indexOf("-----"))!=-1)
								{
									i=1;
									insertStr=new byte[150-enterLength];
									uMessage.getBytes(0,uMessage.length(),insertStr,0);
									fr.seek(l);
									fr.write(insertStr);

									fr.write(insertEnter);

									temp=s;
									l=fr.getFilePointer();
									while((s=fr.readLine())!=null)
									{
										insertStr=new byte[150-enterLength];
										temp.getBytes(0,temp.length(),insertStr,0);
										fr.seek(l);
										fr.write(insertStr);

										fr.write(insertEnter);

										temp=s;
										l=fr.getFilePointer();
									}
									insertStr=new byte[150-enterLength];
									temp.getBytes(0,temp.length(),insertStr,0);
									fr.seek(l);
									fr.write(insertStr);

									fr.write(insertEnter);

									break;
								}
								l=fr.getFilePointer();
							}
							break;
						}
					}
					l=fr.getFilePointer();
				}


				fr.close();

			}
			catch(Exception e){}
							
		}

		//k.encryption(txtAddress+txtName);
		return i;
	}


	public void confirmPack(String pno)
	{
		File file=new File(txtAddress+txtName);

		String enter="\r\n";
		int enterLength=enter.length();
		byte insertEnter[]=new byte[enterLength];
		enter.getBytes(0,enterLength,insertEnter,0);

		//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;
			try
			{
				fr=new RandomAccessFile(file,"rw");
				//k=new Key(txtAddress);
				//k.decrypt(txtAddress+txtName);
			}
			catch(Exception e){}

			String s="";
			String pnoOfDairy="";
			String dbNameOfDairy="";
			int start=0;
			int mid=0;
			int end=0;
			byte insertStr[]=null;

			dealMessage cutingMessage=new dealMessage();		

			int is=0;
			long l=0,mark=0;

			try
			{
				l=fr.getFilePointer();
				while((s=fr.readLine())!=null)
				{
					start=0;
					mid=s.indexOf("\t");
					if(mid>0)
					{
						pnoOfDairy=cutingMessage.cutMessage(s,start,mid);
								
						if(pnoOfDairy.equals(pno))
						{
							receiveMoveToFinishTxt(l);

							break;
						}
						else
						{
							if(pnoOfDairy.equals("Update"))
							{
								mark=l;
							}
						}
					}
					else
					{
						end=s.length();
						s=cutingMessage.cutMessage(s,mid,end);
						start=0;
						mid=s.indexOf("\t");
						pnoOfDairy=cutingMessage.cutMessage(s,start,mid);
						if(pnoOfDairy.equals(pno))
						{
							mid=s.lastIndexOf("\t");
							end=s.length();

							is=Integer.parseInt(cutingMessage.cutMessage(s,mid,end));
							s="\t"+cutingMessage.cutMessage(s,start,mid);
							is++;
							s+="\t"+String.valueOf(is);

							insertStr=new byte[150-enterLength];
							s.getBytes(0,s.length(),insertStr,0);
							fr.seek(l);
							fr.write(insertStr);

							fr.write(insertEnter);

							if(is==1)
							{
								fr.seek(mark);
								s=fr.readLine();

								mid=s.lastIndexOf("\t");
								end=s.length();

								is=Integer.parseInt(cutingMessage.cutMessage(s,mid,end));
								is++;
								s=cutingMessage.cutMessage(s,start,mid)+"\t";
								if(is==1)
								{
									sendMoveToFinishTxt(mark);
								}
								else
								{
									s+=String.valueOf(is);	
															
									fr.seek(mark);
									insertStr=new byte[150-enterLength];
									s.getBytes(0,s.length(),insertStr,0);
									fr.write(insertStr);

									fr.write(insertEnter);
								}
							}
							
							fr.close();
							break;
						}
					}
					l=fr.getFilePointer();
				}

				fr.close();
				//k.encryption(txtAddress+txtName);
			}
			catch(IOException e){}
		}
	}


	public void sendMoveToFinishTxt(long m)
	{
		File file1=new File(txtAddress+txtName);
		File file2=new File(txtAddress+"MissionManage.txt");
		RandomAccessFile fr=null;
		RandomAccessFile fw=null;
		byte insertStr[]=null;
		long mark=m;
		long l=0;

		String enter="\r\n";
		int enterLength=enter.length();
		byte insertEnter[]=new byte[enterLength];
		enter.getBytes(0,enterLength,insertEnter,0);

		int start=0,mid=0;
		dealMessage cutingMessage=new dealMessage();	
		String s="",temp="";

		getUpdateTime gut=new getUpdateTime();
		String sTime=gut.getSystemTime();

		int count=0,i=0;

		try
		{
			fr=new RandomAccessFile(file1,"rw");
			fw=new RandomAccessFile(file2,"rw");

			fr.seek(mark);
			fw.seek(file2.length());
			while((s=fr.readLine())!=null)
			{
				count++;

				start=0;
				mid=s.indexOf("\t");
				s=s.trim();
				if(mid!=0)
				{
					if(mid>0)
					{
						temp=cutingMessage.cutMessage(s,start,mid);
						if(temp.equals("Update"))
						{
							mid=s.lastIndexOf("\t");
							s=cutingMessage.cutMessage(s,start,mid);
							s+="\t"+sTime;
						}
						else
						{
							s="\t"+s;
						}
					
					}
					else
					{
						if(mid==-1)
						{
							if((s.indexOf("-----"))!=-1)
							{
								l=fr.getFilePointer();
								insertStr=new byte[150-enterLength];
								s.getBytes(0,s.length(),insertStr,0);
								fw.write(insertStr);
								fw.write(insertEnter);
								break;
							}
						}
					}
			
					insertStr=new byte[150-enterLength];
					s.getBytes(0,s.length(),insertStr,0);
					fw.write(insertStr);
					fw.write(insertEnter);
				}
			}

			fr.seek(l);
			while((s=fr.readLine())!=null)
			{	
				mid=s.indexOf("\t");
				s=s.trim();
				if(mid==0)
				{
					s="\t"+s;
				}
				l=fr.getFilePointer();
				insertStr=new byte[150-enterLength];
				s.getBytes(0,s.length(),insertStr,0);
				fr.seek(mark);
				fr.write(insertStr);
				fr.write(insertEnter);
				mark=fr.getFilePointer();
				fr.seek(l);
			}

			fr.seek(mark);
			l=file1.length()-mark;
			insertStr=new byte[(int)l];
			s="";
			s.getBytes(0,s.length(),insertStr,0);
			fr.write(insertStr);
			fr.write(insertEnter);
				


		}
		catch(Exception e){}
	}

	public void receiveMoveToFinishTxt(long m)
	{
		File file1=new File(txtAddress+txtName);
		File file2=new File(txtAddress+"MissionManage.txt");
		RandomAccessFile fr=null;
		RandomAccessFile fw=null;
		byte insertStr[]=null;
		long mark=m;
		long l=0;

		String enter="\r\n";
		int enterLength=enter.length();
		byte insertEnter[]=new byte[enterLength];
		enter.getBytes(0,enterLength,insertEnter,0);

		int start=0,mid=0;
		dealMessage cutingMessage=new dealMessage();	
		String s="",temp="";

		getUpdateTime gut=new getUpdateTime();
		String sTime=gut.getSystemTime();

		int count=0,i=0;

		try
		{
			fr=new RandomAccessFile(file1,"rw");
			fw=new RandomAccessFile(file2,"rw");

			fr.seek(mark);
			fw.seek(file2.length());
			while((s=fr.readLine())!=null)
			{
				count++;

				start=0;
				mid=s.indexOf("\t");
				s=s.trim();
				if(mid>0)
				{
					start=s.indexOf("\t");
					mid=s.lastIndexOf("\t");
					s=cutingMessage.cutMessage(s,start,mid);

					start=s.lastIndexOf("\t");
					mid=s.length();
					temp=cutingMessage.cutMessage(s,start,mid);
	
					start=0;
					mid=s.indexOf("\t");
					temp+="\t"+cutingMessage.cutMessage(s,start,mid);

					s="From\t"+temp+"\t"+sTime;
					
				}
				else
				{
					if(mid==-1)
					{
						if((s.indexOf("-----"))!=-1)
						{
						l=fr.getFilePointer();
						insertStr=new byte[150-enterLength];
						s.getBytes(0,s.length(),insertStr,0);
						fw.write(insertStr);
						fw.write(insertEnter);
						break;
						}
					}
					else
					{
						s="\t"+s;
					}
				}
				insertStr=new byte[150-enterLength];
				s.getBytes(0,s.length(),insertStr,0);
				fw.write(insertStr);
				fw.write(insertEnter);
			}

			fr.seek(l);
			while((s=fr.readLine())!=null)
			{	
				mid=s.indexOf("\t");
				s=s.trim();
				if(mid==0)
				{
					s="\t"+s;
				}
				l=fr.getFilePointer();
				insertStr=new byte[150-enterLength];
				s.getBytes(0,s.length(),insertStr,0);
				fr.seek(mark);
				fr.write(insertStr);
				fr.write(insertEnter);
				mark=fr.getFilePointer();
				fr.seek(l);
			}

			fr.seek(mark);
			l=file1.length()-mark;
			insertStr=new byte[(int)l];
			s="";
			s.getBytes(0,s.length(),insertStr,0);
			fr.write(insertStr);
			fr.write(insertEnter);
				


		}
		catch(Exception e){}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -