java xml 保存_将java保存成.xml文件

因为我做的是摄像头的项目,所以在项目中需要用的这一部分的知识点,做的时候很生疏,在网上看了一些教程才做出来的,所以想自己把它记录下来,以后可以经常看看。

首先在开发软件上自己新建一个java项目,在里面新建一个文件,此处省略,直接介绍步骤:

1、在文件下面,声明静态变量,用来存放生成的.xml文件路径;

/**

* 存放接口的路径

*/

private static String currentFolder="./config/HKVideoDate/";

2、新建一个方法,我这里用到的是摄像头设备的IP和参数变量,所以要将他们当做参数传递给这个方法,里面用的两个对象,现在这里介绍一下,分别是Element和Document。

1)Element 对象表示 XML 文档中的元素。元素可包含属性、其他元素或文本。如果元素含有文本,则在文本节点中表示该文本。

/**

* 这里的class、id就是Element对象,可以存在多个Element对象,就像示例中所说的嵌套的形式了

*/

在代码中创建根节点的方式

Element root = new Element("video");

2)Document对象是一棵文档树的根,可为我们提供对文档数据的最初(或最顶层)的访问入口,所以在代码中只有一个就可以了。

3、然后将获取到的摄像头的视频参数放入到Element对象中;

Element root = new Element("video");

Document doc = new Document(root);

if(video!=null){

root.setAttribute("系统名称",video.getSysName());

root.setAttribute("设备状态", video.getStatus());

……

}

4、输出xml文件到本地

XMLOutputter XMLOut = new XMLOutputter();

File file = new File(ipPath);

if(!file.exists()){

file.mkdirs();

}

FileOutputStream fos = new FileOutputStream(path);

XMLOut.output(doc, fos);

fos.close();

可能会抛出异常,捕获就好了。

以上就是将java文件保存到.xml文件的全过程,下面我将完整代码附上,希望可以帮助到大家。

package com.sun.video.hk.api.vo;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.text.SimpleDateFormat;

import java.util.Date;

import org.apache.log4j.Logger;

import org.jdom.Document;

import org.jdom.Element;

import org.jdom.output.XMLOutputter;

public class HKVideoUtil {

/**

* 存放接口的路径

*/

private static String currentFolder="./config/HKVideoDate/";

/**

* 将设备信息保存到XML文件

*/

public static String saveHKVideoManager(String ip,HKVideo video){

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String today=sdf.format(new Date());

String ipPath=currentFolder+today+"/"+ip+"/";

String path=ipPath+ip+"_"+System.currentTimeMillis()+".xml";

Element root = new Element("video");

Document doc = new Document(root);

if(video!=null){

if(video.getSysName()!=null&&video.getSysName()!=""){

root.setAttribute("系统名称",video.getSysName());

}

if(video.getChannelName()!=null&&video.getChannelName()!=""){

root.setAttribute("通道名称",video.getChannelName());

}

if(video.getStatus()!=null&&video.getStatus()!=""){

root.setAttribute("设备状态", video.getStatus());

}

if(video.getVideoStatus()!=null&&video.getVideoStatus()!=""){

root.setAttribute("视频状态", video.getVideoStatus());

}

if(video.getSignStatus()!=null&&video.getSignStatus()!=""){

root.setAttribute("信号状态",video.getSignStatus());

}

if(video.getPootNum()>=0){

root.setAttribute("通道数",String.valueOf(video.getPootNum()));

}

if(video.getSerial()!=null&&video.getSerial()!=""){

root.setAttribute("序列号",video.getSerial());

}

if(video.getDiskNum()!=null&&video.getDiskNum()!=""){

root.setAttribute("硬盘数",video.getDiskNum());

}

if(video.getMacAddress()!=null&&video.getMacAddress()!=""){

root.setAttribute("mac地址",video.getMacAddress());

}

if(video.getSubnetMask()!=null&&video.getSubnetMask()!=""){

root.setAttribute("子网掩码",video.getSubnetMask());

}

Element disk = new Element("disk");

Element diskEle = new Element("disk");

if(video.getDiskName()!=null&&video.getDiskName()!=""){

diskEle.setAttribute("硬盘名称",video.getDiskName());

}

if(video.getCapacity()>=0){

diskEle.setAttribute("磁盘总容量",String.valueOf(video.getCapacity()));

}

if(video.getFreeSpace()>=0){

diskEle.setAttribute("剩余空间",String.valueOf(video.getFreeSpace()));

}

if(video.getDiskStatus()!=null&&video.getDiskStatus()!=""){

diskEle.setAttribute("硬盘状态",video.getDiskStatus());

}

disk.addContent(diskEle);

root.addContent(disk);

}

XMLOutputter XMLOut = new XMLOutputter();

File file = new File(ipPath);

if(!file.exists()){

file.mkdirs();

}

try {

FileOutputStream fos = new FileOutputStream(path);

XMLOut.output(doc, fos);

fos.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

return null;

} catch (IOException e) {

e.printStackTrace();

return null;

}

return path;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值