2 chensong8148 chensong8148 于 2017.08.28 19:10 提问

java写入xml出现错误,求大神帮忙看下。

java写入xml数据,在其他电脑上运行这方法是正常的,但是在自己电脑上就运行错误了,找了很久没有找出啥原因,下午大神帮帮忙。
错误在((org.apache.crimson.tree.XmlDocument)document).write(fos);这句代码,不知道为什么。
异常如下图1:
图片说明
源码如下:

 /**
 * 修改属性值
 * @param fileName
 * @param nodeName
 * @param update
 * @throws InterruptedException 
 * @throws IOException 
 */
public static void UpdataXml(String fileName,String nodeName,String update) throws IOException, InterruptedException{
    String path = System.getProperty("user.dir") + "\\params\\"+fileName+".xml";
    FileReader fr = new FileReader(path);  
//  if (fr.read()==-1) {
        System.out.println("新建文件....");
        Deal.CreateXml("data", nodeName, fileName);
//  }
//  }else if(fr.read()!=-1 ) {
        System.out.println("文件内容不为空");
    DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
    try{
        DocumentBuilder db=dbf.newDocumentBuilder();
        Document document=db.parse(path);
        Node root=document.getDocumentElement(); 
        System.out.println(root);
        //判断文件内容是否为空
        NodeList nodeList = root.getChildNodes(); 
          for (int i=0;i<nodeList.getLength();i++) { 
           Node subnode = nodeList.item(i); 
              if (subnode.getNodeName()==nodeName) {       
                subnode.getFirstChild().setNodeValue(update);
          }
              System.out.println("节点已经更改");
      }

          //写入数据
       System.err.println("数据保存地址为:"+path);
          FileOutputStream fos=new FileOutputStream(new File(path));
          try {
              ((org.apache.crimson.tree.XmlDocument)document).write(fos);
              System.err.println("程序已将数据保存");
              fos.flush();
              fos.close();
          } catch (IOException e) {
              e.printStackTrace();
          }
    }catch (Exception e) {
        // TODO: handle exception
    }

}

1个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2017.08.29 09:06

问题在这行代码((org.apache.crimson.tree.XmlDocument)document).write(fos);
直接用document的相关方法,.操作看看这个document对象有哪些write方法,不要进行转换。

chensong8148
chensong8148 这个方法在其他电脑上执行不了,好难找出问题啊
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
ELM——HOG
代码有问题 出现内存访问错误 求大神帮忙修改
《SQL入门经典》学习笔记
第一部分  SQL概念综述 第1章  欢迎来到SQL世界 1.4.1 表命名标准 表的名称以_TBL作为后缀,表的索引以_INX为后缀 1.4.3 表的构成 字段是表里的一列,记录是表里的一行 第二部分  建立数据库 第2章  定义数据结构 2.2.1 定长字符串 CHARACTER(n): n为最大字符数,通常用空格来填充数量不足的字符 2.2.2 变长字符串
anroid xmpp即时通讯的问题 求大神帮忙看下
本人刚学android不久,现在再做一个xmpp的demo 客户端发送消息时 chat.sendMessage();可以填两种参数 一种是直接发送字符串,一种是发送一个Message 对象  收到消息的监听类如下 public class TaxiChatManagerListener implements ChatManagerListener { private Context mCon
login_test错误
错误,求帮忙调试~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
新浪漫步者6.1
感觉很不好的一个软件 求更好的 有没有大神帮忙!
fifo to uart
VHDL 带fifo的uart 源代码,求大神帮忙修改。
VS2010编写的服务
求高手帮忙看下,断线报警器启动不了是怎么回事
采用Hook钩子注入DLL.
这里采用了HOOk钩子注入DLL,不过出现了错误,大佬帮忙查看下哪里出错了。
应用程序正常初始化0xc0000142,请单击确定关闭程序
这个问题大多是杀毒残留,但也有可能是你卸载某个软件不正确留下的注册表残留。杀毒后,病毒被删除,但启动项里相关加载设置还在,解决方法就是以下方法,如果找不到那个加载失败的启动项就可能是做了伪装,具体伪装到哪个启动项需要分析系统环境。启动项并不一定指向特定的dll名字,提示中的加载失败的项也可能只是启动项其中一个需要调用的文件,而这个文件可能被相关软件程序卸载的时候一并删除了,所以要了解你所有启动项的
音乐播放器
自己做的一个播放器,原本是打算做成当设置成铃音后,Listview后面会出现一个音乐图标,不过一直无法实现,请大神帮忙看下