如何减少使用java创建的xml文件的文件大小?

时间:2014-11-26 03:07:00

标签: java xml size

我必须将带坐标的文本文件转换为xml文件。但是将文本文件转换为xml文件的目的是使文件大小更小。如何减小文件的大小?

public void writeXML() throws Exception
    {   
        ArrayList<Frame> frameList = new ArrayList<Frame>();    
        frameList = readFile();

        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder;

        try
        {
            dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.newDocument();

            // append stuff                

            TransformerFactory transformerFactory = TransformerFactory.newInstance();

            Transformer transformer = transformerFactory.newTransformer();

            //transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            DOMSource source = new DOMSource(doc);

            StreamResult console = new StreamResult(System.out);
            StreamResult file = new StreamResult(new File("file.xml"));

            //transformer.transform(source, console);
            transformer.transform(source, file);
            System.out.println("DONE");
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }    
    }

1 个答案:

答案 0 :(得分:2)

  

但是将文本文件转换为xml文件的目的是使文件大小更小。

这可能无法实现。 XML的密度低于典型的文本表示,因为正确设计的XML会增加大量的标记&#34;到文件。

由适当设计的文本形式(例如CSV)中的坐标组成的文件所占用的空间将少于XML中表示的相同坐标。

如果你想要&#34;更密集&#34;文件而不是自定义文本格式:

  • 考虑压缩文本文件,或

  • 考虑使用二进制表示而不是文本。


如果您坚持使用XML的想法,那么减小文件大小的最佳方法是压缩它。鉴于XML中存在大量冗余(例如标记),您应该获得显着的压缩。