我用JDOM写了一个本地的XML文件,然后传出一个参数,这个参数就是这个文件的名字. 这个名字的构成是一个固定字符串+一个动态生成的当前日期和时间. 然后在另外一个类中一个方法把这个文件名作为参数传入进行进一步操作,但是运行的时候出错了.   如果我固定一个文件名传给这个方法,那么就能正确的运行,  请问倒地是什么问题?  怎么解决这个问题  谢谢

解决方案 »

  1.   

    出了什么错?有log文件法上来看看么?说不定就是乱码问题呢,赫赫
      

  2.   

    class writeXML
    {
    ............
    public String xmlfile
    {
          try {
                synchronized(this) {
                //filePath="QC_QUERY_TYPE_"+strDate+".XML";
                filePath="QC_QUERY_TYPE.XML";
                XMLOutputter XMLOut = new XMLOutputter(format); //在元素后换行,每一层元素缩排四格
                XMLOut.output(doc,
                              new FileOutputStream(filePath));
                
                };
               // s=XMLOut.outputString(doc);
            } catch (Exception ex) {
                System.out.println("Can not write the XML file. " + ex);
            }
            return filePath;
    }
    }这个是写XML文件的类public class OCX_QUERY {
        public String queryFile(String strUrl, String strName, String psw,
                                String strProxyIP, String strProxyPort,
                                String strProxyName, String strProxyPsw,
                                String strUrl2, String file) {
    }
    这是那个读取XML文件的类,  其中的参数 file就是接受的上面产生的文件的文件名
      

  3.   

    路径是绝对路径,很完整的路径,   我又测试了下,  应该就读写文件并发的问题.JDOM写了文件后没有关闭之前可能另一个类就开始读了,  但是我又不知道怎么去解决这个问题
    大家帮我看看  怎么作能够关闭这个文件
      

  4.   

    FileWriter writer = new FileWriter("/some/directory/myFile.xml");
    outputter.output(myDocument, writer);
    writer.close();
      

  5.   

    XMLOut.output(doc,new FileOutputStream(filePath));
    这里你是直接new的,所以没有关闭FileOutputStream,建议定义一个对象使用
      

  6.   

    http://www.free199.com/scrap_show.jsp?catid=124&id=487
      

  7.   

    可能原因一:
    STRING FN=一个固定字符串+一个动态生成的当前日期和时间;
    写入文件传递时把FN传递过去,而不是直接传"一个固定字符串+一个动态生成的当前日期和时间"因为这个时候动态生成的时间和原来的不一样.
    -----------------
    可能原因二:
        动态生成的当前日期和时间 的格式有问题,不能正确存储成文件名,比如如果含有":"冒号,系统就不允许作为文件名.
      

  8.   

    XMLOut.output(doc,new FileOutputStream(filePath));
    用隐式声明的文件流,没有正确关闭吧
    显示声明这个文件流