package dataDao;
import java.io.File;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* @author GaoShuhang
*/
public class DataDaoImpl implements DataDao
{
private String getPath()
{
String path = this.getClass().getResource("").getPath();
path = path.substring(0, path.length() - 8);
path += "data.xml";
return path;
}
@Override
public void addPassword(Data data) throws Exception
{
String path = this.getPath();
SAXReader sax = new SAXReader();
String item = data.getItem();
String password = data.getPassword();
Document doc = sax.read(path);
Element root = doc.getRootElement();
Element userNode = root.addElement("node");
userNode.addAttribute("item", item);
userNode.addAttribute("password", password);
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(new PrintWriter(path, "utf-8"), format);
writer.write(doc);
writer.close();
}
@Override
public void removePassword(String item) throws Exception
{
SAXReader sax = new SAXReader();
String path = this.getPath();
Document doc = sax.read(new File(path));
Element root = doc.getRootElement();
for ( @SuppressWarnings("rawtypes")
Iterator i = root.elementIterator("node"); i.hasNext(); )
{
Element node = (Element) i.next();
if(node.attributeValue("item").equals(item))
{
root.remove(node);
}
}
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(new PrintWriter(path, "UTF-8"), format);
writer.write(doc);
writer.close();
}
@Override
public boolean haveItem(String item) throws Exception
{
SAXReader sax = new SAXReader();
String path = this.getPath();
Document doc = sax.read(path);
Element root = doc.getRootElement();
for ( @SuppressWarnings("rawtypes")
Iterator i = root.elementIterator("node"); i.hasNext(); )
{
Element node = (Element) i.next();
if(node.attributeValue("item").equals(item))
{
return true;
}
}
return false;
}
@Override
public List<Data> listData() throws Exception
{
String path = this.getPath();
List<Data> arr = new ArrayList<>();
SAXReader sax = new SAXReader();
Document doc = sax.read(path);
Element root = doc.getRootElement();
for ( @SuppressWarnings("rawtypes")
Iterator i = root.elementIterator("node"); i.hasNext(); )
{
Element node = (Element) i.next();
arr.add(new Data(node.attributeValue("item"), node.attributeValue("password")));
}
return arr;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Javafx做的密码管理程序
3星 · 超过75%的资源 需积分: 45 21 下载量 137 浏览量
2016-03-19
23:09:05
上传
评论 1
收藏 314KB GZ 举报
温馨提示
javafx做的桌面应用。没啥技术含量,看了一天的文档现学现卖的,感觉挺好玩,文档有些没看懂,按照自己的想法写的,可能写的不太专业。另外,赶脚fxml的写法坑好多,也没个对的中文说明,所以发上来供大家参考。。。
资源推荐
资源详情
资源评论
收起资源包目录
PasswordManager.tar.gz (22个子文件)
PasswordManager
data.xml 233B
PasswordManager.jar 311KB
src
passwordmanager
RandCreateWindowController.java 2KB
ListWindow.fxml 2KB
PasswordManager.java 2KB
WindowController.java 230B
GetPasswordWindow.fxml 1KB
MainWindowController.java 1KB
AddWindowController.java 1KB
GetPasswordWindowController.java 566B
RandCreateWindow.fxml 2KB
RemoveWindow.fxml 1KB
MainWindow.fxml 2KB
ListWindowController.java 1KB
RemoveWindowController.java 1KB
style.css 54B
AddWindow.fxml 2KB
dataDao
Data.java 691B
DataDaoImpl.java 3KB
DataDao.java 346B
utils
RandCreatePasswordImpl.java 539B
RandCreatePassword.java 216B
共 22 条
- 1
资源评论
- yaojingdeweiba12016-08-05还没用,谢谢分享。
guiji9511
- 粉丝: 1
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于SpringBoot和MyBatis的教育管理系统.zip
- audio1244261864.m4a
- yolo-world.zip
- (源码)基于SpringBoot框架的远程控制门禁系统.zip
- 精选微信小程序源码:早教幼儿启蒙小程序(含源码+源码导入视频教程&文档教程,亲测可用)
- (源码)基于SpringBoot和Vue的论坛系统.zip
- 运维系列亲测有效:mobaxterm怎么删除已保存的密码
- (源码)基于Bash的Linux环境管理利器-快速启动系统配置文件管理器.zip
- Kylin操作系统在虚拟环境下的安装与配置指南
- (源码)基于STM32F0系列微控制器的时钟配置系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功