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

📄 interestserver.java

📁 一个java rmi实现的分布式银行管理系统
💻 JAVA
字号:
package BS.server;
/**
 * @author 束罡
 * 
 * TODO To change the template for this generated type comment go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
import java.io.File;
import java.io.PrintWriter;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;

//利息
public class InterestServer extends Thread
{
	private static float InterestRate = 0.1f;
	
	private static String serverData = ".\\bin\\BankServerData\\";	
	private static String serverName = "Project1Server";
	private static String BankServerData;
	
	private static DocumentBuilderFactory dbf = null;
	private static DocumentBuilder db = null;
	private static Document doc = null; 

	public static boolean flag = false;
	
	public void run()
	{
		flag = true;
		while (true)
		{
			if (flag == true)
			{
				try
				{
					//每30秒钟增加一次利息
					sleep(30000);
					InterestServer.interestsIncreaser();					
				}
				catch(InterruptedException e)
				{
					
				} catch (Exception e)
				{
					
				}
			}
		}
	}
	
	public static synchronized boolean interestsIncreaser() throws Exception
	{
		InterestServer.BankServerData = serverData + serverName + ".xml";
		dbf = DocumentBuilderFactory.newInstance(); 
		db = null;
		doc = null; 
		try
		{
			db = dbf.newDocumentBuilder();
			doc = db.parse(BankServerData);
		}
		catch(Exception e)
		{
			System.out.println("----------------------------");
			System.err.println("ERROR>> 银行数据文件找不到");
			System.out.println("----------------------------");
			System.exit(1);
		}
		
		System.out.println("============================");
		System.out.println("SYSTEM>> 银行进行利息增长!利率10%");
		System.out.println("============================");
		
		Element e;
		Text t;
		String str1 = "";
		Element root = doc.getDocumentElement();
		NodeList userList = root.getElementsByTagName("user");
		NodeList t_id;
		
		for(int i=0; i<userList.getLength(); i++)
		{
			Element user = (Element) userList.item(i);
			t_id = user.getElementsByTagName("amount");
			e = (Element) t_id.item(0); 
			t = (Text) e.getFirstChild();
			str1 = t.getData();
			float interests = Float.parseFloat(str1)*(1+InterestRate);
			t.setData("" + interests);
							
				
//			创建转换工厂TransformerFactory
			TransformerFactory transFactory = TransformerFactory.newInstance();
//			创建转换器Transformer
			Transformer former = transFactory.newTransformer();
//			将上面创建的Document 树转换为Source树
			DOMSource source = new DOMSource(doc);
			former.setOutputProperty(OutputKeys.ENCODING,"gb2312");//设置转换器编码
			former.setOutputProperty(OutputKeys.INDENT,"yes");//指定输出结果树时可以添加额外的空白
			PrintWriter writer = new PrintWriter(new File(BankServerData));
//			Writer的输出是字符流,而OutputStreamj 字节流
			StreamResult result = new StreamResult(writer);//转换结果
			former.transform(source,result);//将树输出
			writer.close();
		}
		return true;
	}
	
	
	
	public static void main (String [] args) throws Exception
	{
		InterestServer is = new InterestServer();
		is.start();
	}

}

⌨️ 快捷键说明

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