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 这个方法在其他电脑上执行不了,好难找出问题啊
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片