【发布时间】:2013-12-29 09:34:56
【问题描述】:
我正在使用 Java 中的 SAX Parser 解析一个 1.2 GB 的 XML 文件。 Console 中的结果不完整。我想要做的是将解析的 XML 文件写入另一个文件。这是我使用 SAX 解析 XML 文件的代码:
public class Parser extends DefaultHandler
{
public void startDocument()
{
System.out.println("Begin parsing the document .. ");
}
public void endDocument()
{
System.out.println("End parsing document ..");
}
public void startElement(String namespaceURI, String localName,String rawName, Attributes atts) throws SAXException
{
System.out.print("<" + rawName + ">");
}
public void endElement(String namespaceURI, String localName, String rawName) throws SAXException
{
System.out.print("</" + rawName + ">");
}
public void characters(char[] ch, int start, int length) throws SAXException
{
for (int i=0; i<(start + length); i++)
{
System.out.print(ch[i]);
}
}
}
这里是main 方法:
public static void main(String[] args ) throws IOException, SAXException
{
XMLReader p = XMLReaderFactory.createXMLReader();
p.setContentHandler(new Parser());
p.parse("dblp.xml");
}
我想至少将此 XML 文件的所有内容写入一个文本文件。我也在考虑将内容写入另一个 XML 文件。任何人都可以帮我编写 XML 文件内容。我以某种方式尝试了以下代码:
FileWriter fstream = new FileWriter("out.txt");
BufferedWriter out = new BufferedWriter(fstream);
【问题讨论】:
-
请解释一下当你尝试你的代码时发生了什么。从您的问题中不清楚您面临什么问题。包含代码示例时也请使用一致的缩进,否则它们更难以阅读。
-
代码正在解析 XML 文件。例如,我需要的只是将解析的输出写入另一个文本文件。
-
您在问题中说“我已尝试使用以下代码”。我想问你尝试的时候发生了什么?如果您有一些损坏的代码需要我们帮助修复,或者您是否希望有人会为您编写该代码,我会感到困惑。如果您在回复中包含
@Duncan,我会收到您的回复通知。 -
当我运行代码时,输出显示在控制台中。我不知道如何将这些输出写入文本文件。它不应该被打破。我只是用一个小 XML 文件对其进行了测试。解析的输出显示在 Eclipse 的 Console 中。
-
您正在寻找的是将控制台输出放入文件中,因为您的解析器正在将所有内容写入控制台