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

📄 userxmldao.java

📁 java qq 实现点对点聊天功能 并提供服务器端聊天室元代码
💻 JAVA
字号:
package dao.impl;

import java.util.*;

import model.*;
import dao.UserDao;
import java.io.*;

import org.w3c.dom.*;
import org.xml.sax.SAXException;

import javax.xml.parsers.*;

public class UserXmlDao implements UserDao {
	private String name;
	public UserXmlDao(String name) {
		super();
		this.name = name;
	}
	public Map loadUsers() {
		try{
		Map users = new HashMap();

		Document doc = null;
		try {
			DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance();
			DocumentBuilder b = fact.newDocumentBuilder();
			doc = b.parse(name);
		} catch (Exception e1) {
			e1.printStackTrace();
			return users;
		}
		NodeList nl = doc.getElementsByTagName("User");
		for (int i = 0; i < nl.getLength(); i++) {
			Element e = (Element) nl.item(i);

			String id = this.getText(e, "ID");
			String name = this.getText(e, "Name");
			String password = (this.getText(e, "Password"));
			String sex = this.getText(e, "Sex");
			String qqid = this.getText(e, "Qqid");
			String birthyear = this.getText(e, "Birthyear");
			String timelong = this.getText(e, "Timelong");
			NodeList n2 = e.getElementsByTagName("Friend");
			ArrayList l = new ArrayList();
			if (n2 != null) {
				
				for (int j = 0; j < n2.getLength(); j++) {
					Element e2 = (Element) n2.item(j);
					String a = e2.getTextContent().trim();
					int friendid=Integer.parseInt(a);
					l.add(friendid);
					System.out.println("friendid"+friendid);
				}
			}
			String face = this.getText(e, "Face");
			String money = this.getText(e, "Money");
			String lastload = this.getText(e, "Last");
			String text = this.getText(e, "Text");
			String shengxiao=this.getText(e,"Shengxiao");
			String star=this.getText(e,"Star");
			String home=this.getText(e,"Home");
			String university=this.getText(e,"University");
			String zhuanye=this.getText(e,"Zhuanye");
			String she=this.getText(e,"She");
			String rank=this.getText(e,"Rank");
			ArrayList black=new ArrayList();
			NodeList n3 = e.getElementsByTagName("Black");
			if (n3 != null) {
				for (int j = 0; j < n3.getLength(); j++) {
					Element e3 = (Element) n3.item(j);
					String b = e3.getTextContent().trim();
					int blackid=Integer.parseInt(b);
					black.add(blackid);
				}
			}
			User c = new User();

			c.setId(Integer.parseInt(id));
			c.setName(name);
			c.setPassword(password);
			c.setSex(sex);
			c.setQqid(qqid);
			c.setBirthyear(Integer.parseInt(birthyear));
			c.setTimelong(Integer.parseInt(timelong));
			c.setFriendid(l);
			c.setFace(Integer.parseInt(face));
			c.setState(0);
			c.setMoney(Integer.parseInt(money));
			c.setLastload(lastload);
			c.setText(text);
			c.setShengxiao(shengxiao);
			c.setStar(star);
			c.setHome(home);
			c.setUniversity(university);
			c.setZhuanye(zhuanye);
			c.setRank(Integer.parseInt(rank));
			c.setShe(Integer.parseInt(she));
			c.setBlack(black);

			users.put(Integer.valueOf(id), c);
		}
		for(Object obj: users.keySet()){
			int userid=(Integer)obj;
			System.out.println("userid"+userid);
			((User)(users.get(userid))).setFriends(users);
		}
		return users;}catch(Exception e){
			e.printStackTrace();
			return null;
		}finally{
			
		}
	}

	public void saveUsers(Map m) {
		PrintWriter out = null;
		try {
			try {
				out = new PrintWriter(name,"unicode");
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
			out.println("<?xml version=\"1.0\" ?>");
			out.println("<Users>");

			Collection c = m.values();
			Iterator it = c.iterator();
			while (it.hasNext()) {
				User a = (User) it.next();
				out.println("\t<User>");
				out.println("\t\t<ID>" + a.getId() + "</ID>");
				out.println("\t\t<Name>" + a.getName() + "</Name>");
				out.println("\t\t<Password>" + a.getPassword() + "</Password>");
				out.println("\t\t<Sex>" + a.getSex() + "</Sex>");
				out.println("\t\t<Qqid>" + a.getQqid() + "</Qqid>");
				out.println("\t\t<Birthyear>" + a.getBirthyear()
						+ "</Birthyear>");
				out.println("\t\t<Timelong>" + a.getTimelong() + "</Timelong>");
				out.println("\t\t<Friends>");
				for (Object o : a.getFriends().keySet()) {
					int friendid=(Integer)o;
					out.println("\t\t\t<Friend>" + friendid + "</Friend>");
				}
				out.println("\t\t</Friends>");
				out.println("\t\t<Face>" + a.getFace() + "</Face>");
				out.println("\t\t<Money>" + a.getMoney() + "</Money>");
				out.println("\t\t<Last>" + a.getLastload()+ "</Last>");
				out.println("\t\t<Text>" + a.getText() + "</Text>");
				out.println("\t\t<Shengxiao>" + a.getShengxiao() + "</Shengxiao>");
				out.println("\t\t<Star>" + a.getStar() + "</Star>");
				out.println("\t\t<Home>" + a.getHome() + "</Home>");
				out.println("\t\t<University>" + a.getUniversity()+ "</University>");
				out.println("\t\t<Zhuanye>" + a.getZhuanye() + "</Zhuanye>");
				out.println("\t\t<She>" + a.getShe() + "</She>");
				out.println("\t\t<Rank>" + a.getRank()+ "</Rank>");
				out.println("\t\t<Blacks>");
				for (Object o : a.getBlack()) {
					int blackid=(Integer)o;
					out.println("\t\t\t<Black>" + blackid + "</Black>");
				}
				out.println("\t\t</Blacks>");
				out.println("\t</User>");
			}
			out.println("</Users>");
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			out.close();
		}
	}
	// 得到e下边的tagName子标记,获取其文本内容
	private String getText(Element e, String tagName) {
		NodeList nl = e.getElementsByTagName(tagName);
		Element e2 = (Element) nl.item(0);
		return e2.getTextContent().trim();
	}

}

⌨️ 快捷键说明

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