问题描述
我是个.NET程序员,但近来需要用java来操作XML,因为软件的原因,不能使用dom4j,只能使用dom,我从网上找了些代码,大家看看为何我在每2秒钟运行时,发现3分钟后,系统就提示:java.io.FileNotFoundException:time.xml(请求的操作无法在使用用户映射区域打开的文件上执行。)atjava.io.FileOutputStream.open(NativeMethod)atjava.io.FileOutputStream.<init>(FileOutputStream.java:179)atjava.io.FileOutputStream.<init>(FileOutputStream.java:70)我的代码如下,请大家着重看数据保存时的代码:publicstaticStringgetsetTime(Stringxiangmu)throwsParserConfigurationException,SAXException,IOException,XPathExpressionException,TransformerException,FileNotFoundException{Stringxfile="myxml/time.xml";/*//只能类似于以下代码,其中传过来的参数xiangmu就是下面的id值,time项可以有多行<?xmlversion="1.0"encoding="UTF-8"?><root><timeid="lvguan"now="2009-04-1509:13:51"/></root>*/SimpleDateFormatdateformat=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");Stringxintime=dateformat.format(newDate());DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();XPathFactoryxpathFactory=XPathFactory.newInstance();XPathxpath=xpathFactory.newXPath();factory.setIgnoringElementContentWhitespace(true);DocumentBuilderdb=factory.newDocumentBuilder();Documentxmldoc=db.parse(newFile(xfile));xpathFactory=XPathFactory.newInstance();xpath=xpathFactory.newXPath();ElementtheBook=(Element)xpath.evaluate("/root/time[@id='"+xiangmu+"']",xmldoc,XPathConstants.NODE);Stringlaotime=theBook.getAttribute("now");theBook.setAttribute("now",xintime);//以下保存修改的XML文件TransformerFactorytransFactory=TransformerFactory.newInstance();Transformertransformer=transFactory.newTransformer();transformer.setOutputProperty("indent","yes");DOMSourcesource=newDOMSource();source.setNode(xmldoc);StreamResultresult=newStreamResult();FileOutputStreamfout=newFileOutputStream(xfile));result.setOutputStream(fout);fout.flush;transformer.transform(source,result);returnlaotime;}
谢谢了!
解决方案
解决方案二:
你看是不是time.xml的路径写错了。