📄 datamanager.java
字号:
package BS.server.xmllayer;
/**
* @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.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.parsers.*;
import org.w3c.dom.*;
public class DataManager {
private static String serverData = ".\\bin\\BankServerData\\";
private static String serverName;
private static String BankServerData;
private static DocumentBuilderFactory dbf = null;
private static DocumentBuilder db = null;
private static Document doc = null;
private static synchronized void initServer(String servername)
{
if (doc == null || !DataManager.serverName.equals(servername))
{
DataManager.serverName = servername;
DataManager.BankServerData = serverData + serverName + ".xml";
// System.out.println("----------------------------");
// System.out.println(serverName + " is initializing...");
// System.out.println("----------------------------");
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);
}
}
}
private static synchronized void desServer()
{
dbf = null;
db = null;
doc = null;
}
public static synchronized boolean write (int id, float amount, String serverName) throws Exception
{
initServer(serverName);
Element e;
Text t;
String str1 = "";
Element root = doc.getDocumentElement();
NodeList userList = root.getElementsByTagName("user");
NodeList t_id, t_amount;
for(int i=0; i<userList.getLength(); i++)
{
Element user = (Element) userList.item(i);
t_id = user.getElementsByTagName("id");
e = (Element) t_id.item(0);
t = (Text) e.getFirstChild();
str1 = t.getData();
if (str1.equals(""+id) == true)
{
t_amount = user.getElementsByTagName("amount");
e = (Element) t_amount.item(0);
t = (Text) e.getFirstChild();
String newVaulue = "" + amount;
t.setData(newVaulue);
// 创建转换工厂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();
desServer();
return true;
}
}
desServer();
return false;
}
public static synchronized String read (int id, String serverName)
{
initServer(serverName);
Element e;
Text t;
String str1 = "", str2 = "", str3 = "", result = "";
Element root = doc.getDocumentElement();
NodeList userList = root.getElementsByTagName("user");
NodeList t_id, t_name, t_amount;
for(int i=0; i<userList.getLength(); i++)
{
Element user = (Element) userList.item(i);
t_id = user.getElementsByTagName("id");
e = (Element) t_id.item(0);
t = (Text) e.getFirstChild();
str1 = t.getData();
if (str1.equals(""+id) == true)
{
t_name = user.getElementsByTagName("name");
e = (Element) t_name.item(0);
t = (Text) e.getFirstChild();
str2 = t.getData();
t_amount = user.getElementsByTagName("amount");
e = (Element) t_amount.item(0);
t = (Text) e.getFirstChild();
str3 = t.getData();
result = str1 + "\t" + str2 + "\t" + str3;
// System.out.println(result);
desServer();
return result;
}
}
desServer();
return null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -