📄 messageadmin.java
字号:
/* * MessageAdmin.java * * Created on 2004年12月23日, 上午10:24 * 这个类主要用于管理用户留言 * */package com.mg.admin;import java.io.Serializable;import java.io.*;import java.util.*;import org.jdom.*;import org.jdom.input.*;import org.jdom.output.*;/** * 这个类主要用于管理用户消息 */public class MessageAdmin extends Object{ //********************成员变量************************ /** * 操作的根路径 */ private String rootPath; /** * 当前操作的XML文件名 */ private static final String TABLE_NAME = "messages.xml"; //********************成员函数************************ /** * 构造函数,如果使用这个构造函数,需要调用setRootPath设置根路径 * <p> * @see #setRootPath */ public MessageAdmin() { } /** * 设置操作的根路径 * <p> * @see #getRootPath */ public void setRootPath(String rp) { if (rootPath != rp) { rootPath = rp; } } /** * 返回操作的根路径 * <p> * @return 返回根路径 * <p> * @see #setRootPath */ public String getRootPath() { return rootPath; } /** * 获得当前的XML Document对象 */ private Document getDoc() { Document doc = null; PrintStream out = System.out; //读取文件 try { File file = new File(rootPath, TABLE_NAME); if (file.exists()) { SAXBuilder builder = new SAXBuilder(false); doc = builder.build(file); } } catch(Exception e) { out.println("Exception: " + e.toString()); } return doc; } /** * 连接当前的rootPath下的messages.xml名的XML文件, * 并返回所有的留言。 * <p> * @return 封装了Message对象的Vecotr对象。 */ public Vector getMessages() { Vector ret = new Vector(); Document doc=getDoc(); if (doc != null) { // 获取根节点 Element root = doc.getRootElement(); List list = root.getChildren(); Iterator list_i = list.iterator(); Element userNode=null; while (list_i.hasNext()) { //获取子节点 Element e = (Element)list_i.next(); //获取二级子节点 List details = e.getChildren(); if (details.size()<Message.ELEMENT_NUM) { //错误 break; } //添加Message对象 String text1 = ((Element)details.get(0)).getText(); String text2 = ((Element)details.get(1)).getText(); String text3 = ((Element)details.get(2)).getText(); String text4 = ((Element)details.get(3)).getText(); Message message = new Message(); message.setTitle(text1); message.setContent(text2); message.setDateTime(text3); message.setUser(text4); ret.add(message); } } return ret; } /** * 连接当前的rootPath下的messages.xml名的XML文件, * 并添加一条留言,如果成功则返回true,否则返回false。 * <p> * @param message Message对象 */ public boolean add(Message message) { boolean ret = false; Document doc=getDoc(); if (doc != null) { // 获取根节点 Element root = doc.getRootElement(); Element newE = new Element("message"); Element eTitle = new Element("title"); eTitle.setText(message.getTitle()); newE.addContent(eTitle); Element eContent = new Element("content"); eContent.setText(message.getContent()); newE.addContent(eContent); Element eDateTime = new Element("datetime"); eDateTime.setText(message.getDateTime()); newE.addContent(eDateTime); Element eUserID = new Element("userid"); eUserID.setText(message.getUser()); newE.addContent(eUserID); root.addContent(newE); //保存修改 save(doc); ret = true; } return ret; } /** * 连接当前的rootPath下的messages.xml名的XML文件, * 并删除一条留言,如果成功则返回true,否则返回false。 * <p> * @param message Message对象 */ public boolean delete(Message message) { boolean ret = false; Document doc=getDoc(); if (doc != null) { // 获取根节点 Element root = doc.getRootElement(); List list = root.getChildren(); Iterator list_i = list.iterator(); Element userNode=null; while (list_i.hasNext()) { //获取子节点 Element e = (Element)list_i.next(); //获取二级子节点 List details = e.getChildren(); if (details.size()<Message.ELEMENT_NUM) { //错误 return ret; } //判断是否相等 String text1 = ((Element)details.get(0)).getText(); String text2 = ((Element)details.get(1)).getText(); String text3 = ((Element)details.get(2)).getText(); String text4 = ((Element)details.get(3)).getText(); if (!text1.equals(message.getTitle()) || !text2.equals(message.getContent()) || !text3.equals(message.getDateTime()) || !text4.equals(message.getUser())) { //如果不相等则继续查找 continue; } else { //删除当前节点 root.removeContent(e); break; } } //保存修改 save(doc); ret = true; } return ret; } /** * 连接当前的rootPath下的messages.xml名的XML文件, * 并删除一条留言,如果成功则返回true,否则返回false。 * <p> * @param message 要删除的留言序号 */ public boolean delete(int index) { boolean ret = false; Document doc=getDoc(); if (doc != null) { // 获取根节点 Element root = doc.getRootElement(); List list = root.getChildren(); if ((index < list.size())&&(index>=0)) { list.remove(index); } else { return ret; } //保存修改 save(doc); ret = true; } return ret; } /** * 保存修改到XML文件 * <p> * @param doc 要保存的Document对象 */ private void save(Document doc) { //保存修改 try { Format format = Format.getPrettyFormat(); format.setEncoding("GBK"); XMLOutputter out = new XMLOutputter(format); File file = new File(rootPath, TABLE_NAME); FileOutputStream fos = new FileOutputStream(file); out.output(doc, fos); } catch(Exception e) { System.out.println("Exception: " + e.toString()); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -