import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
class Demo{
static Document doc = DocumentHelper.createDocument();
static Scanner scanner = new Scanner(System.in);
static Element rootElem = doc.addElement("persons");
public static void main(String[] args) throws Exception {
while(true) {
System.out.println("============");
System.out.println("【1】添加联系人");
System.out.println("【2】修改联系人");
System.out.println("【3】删除联系人");
System.out.println("【4】查询所有联系人");
System.out.println("【5】退出程序");
System.out.println("============");
System.out.println("请输入您的选择");
int n = scanner.nextInt();
if(n==1) {
add();
}else if(n==2) {
fix();
}else if(n==3) {
del();
}else if(n==4) {
readAll();
}else if(n==5) {
System.exit(1);
}
System.out.println("输入任意数字并按回车键返回");
scanner.nextInt();
clear();
}
}
public static void clear() throws Exception
{
Robot r = new Robot();
r.mousePress(InputEvent.BUTTON3_MASK); // 按下鼠标右键
r.mouseRelease(InputEvent.BUTTON3_MASK); // 释放鼠标右键
r.keyPress(KeyEvent.VK_CONTROL); // 按下Ctrl键
r.keyPress(KeyEvent.VK_R); // 按下R键
r.keyRelease(KeyEvent.VK_R); // 释放R键
r.keyRelease(KeyEvent.VK_CONTROL); // 释放Ctrl键
r.delay(100);
}
public static List<person> readXML() throws Exception{
List<person> list = new ArrayList();
Document doc = new SAXReader().read(new File("F:\\person.xml"));
Element rootElem = doc.getRootElement();
person p = new person();
Iterator <Element > it = rootElem.elementIterator();
while(it.hasNext()) {
Element personElem = it.next();
p.setId(personElem.attributeValue("id"));
p.setAge(personElem.elementText("age"));
p.setName(personElem.elementText("name"));
p.setQq(personElem.elementText("qq"));
p.setTel(personElem.elementText("tel"));
list.add(p);
}
return list;
}
public static void addXML(List<person> list) throws Exception{
FileOutputStream outputStream = new FileOutputStream(new File("F:\\person.xml"));
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
XMLWriter writer = new XMLWriter(outputStream, format);
for(person p:list) {
Element personElem = rootElem.addElement("person").addAttribute("id", p.id);
personElem.addElement("name").setText(p.name);
personElem.addElement("age").setText(p.age);
personElem.addElement("tel").setText(p.tel);
personElem.addElement("qq").setText(p.qq);
}
writer.write(doc);
outputStream.close();
}
public static void add() throws Exception {
List <person> list = readXML();
person p = new person();
System.out.println("请输入您的编号:");
String id = scanner.next();
p.setId(id);
System.out.println("请输入您的姓名:");
String name = scanner.next();
p.setName(name);
System.out.println("请输入您的年龄:");
String age = scanner.next();
p.setAge(age);
System.out.println("请输入您的手机号:");
String tel = scanner.next();
p.setTel(tel);
System.out.println("请输入您的qq:");
String qq = scanner.next();
p.setQq(qq);
list.add(p);
addXML(list);
System.out.println("储存成功!");
}
public static void del() throws Exception {
List <person> list = readXML();
System.out.println("请输入您要删除的编号:");
String id = scanner.next();
Iterator <person>it = list.iterator();
while(it.hasNext()) {
person p =(person)it.next();
if((p.id).equals(id)) {
it.remove();
System.out.println("删除成功!");
}
}
addXML(list);
}
public static void readAll() throws Exception {
List<person> list = readXML();
for(person p:list) {
System.out.println(p);
}
}
public static void fix() throws Exception {
List<person> list = readXML();
System.out.println("请输入您的编号");
String id = scanner.next();
System.out.println("请输入您修改后的电话号码");
String tel = scanner.next();
Iterator<person> it= list.iterator();
while(it.hasNext()) {
person p = (person)it.next();
if(p.id.equals(id)) {
p.tel=tel;
System.out.println("修改成功!");
}
}
}
}