【问题标题】:Not able to create new file using FileOutputStream in Servlet无法在 Servlet 中使用 FileOutputStream 创建新文件
【发布时间】:2012-05-08 11:02:13
【问题描述】:

我正在使用以下代码在我的一个项目中使用 Stax Parser 创建 XML 文件。我之前在普通的 Java 应用程序中使用过这段代码,它在那里运行良好。但是当我为 Servlet 实现这个时,我不知道它为什么不运行。我没有收到任何错误,但没有生成 XML 文件。

private static ServletContext sc;

    public void init(ServletConfig config) throws ServletException {
        // TODO Auto-generated method stub
        sc = config.getServletContext();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    String path = sc.getRealPath("/WEB-INF/xml");
    System.out.println("Path ==>" + path);

    XMLOutputFactory factory = XMLOutputFactory.newInstance();
    File f = new File(path+"/atms.xml");
    XMLStreamWriter writer = factory.createXMLStreamWriter(new FileOutputStream(f));

    //Some more code
        writer.writeStartDocument();
        writer.writeStartElement("xxx");

        writer.writeStartElement("yyy");
        writer.writeStartElement("id");
        writer.writeCharacters("1");
        writer.writeStartElement("name");
        writer.writeCharacters("Table");
        writer.writeStartElement("price");
        writer.writeCharacters("110");

        writer.writeEndElement();       
        writer.close();
}

【问题讨论】:

  • 调试 servlet。除了FileNotFoundException 的运行时错误之外,我在代码中没有看到任何错误

标签: xml servlets file-io stax


【解决方案1】:

我认为您需要添加以下内容:

writer.writeEndElement();

writer.writeEndDocument();

writer.flush();
writer.close();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-09
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    • 2021-05-01
    • 2017-02-03
    • 1970-01-01
    相关资源
    最近更新 更多