要从DB中捡取数据写一个XML文件,因为数据量非常大,就是采取1条1条数据的写,但是文件的头要有1个数据总量的统计,我只有写完所有的数据才能知道有多少。可以先写中间的主体,最后再写HEADER呢?
不能采取先把所有数据写到文件最后再读下文件修改,因为文件很大,读取放在String中很容易溢出。
可不可以用只一个WRITER先写DETAILS然后在整个WRITER的前面的最后写HEADER?或者其他的解决方案,谢谢大家!!!

解决方案 »

  1.   

    1. 写文件,基本上不可能是写一条(或一部分)然后就存文件,然后再写下一条(下一部分)
    2. 一般来说,都是在内存里把文件写好,一次性用 FileOutputStream 或 FileOutputWriter 写到磁盘上(XML文件就是这样处理的)
    3. 所以你有什么可担心的呢?
    4. 即使是写一条就存一次文件(硬盘I/O),写最后一条数据的工作量和写HEADER的基本上没区别,写倒数第二条的 工作量和写最后一条的基本上没区别... 要担心的不只是写 HEADER 吧
    5. String 可以放 2G,不那么容易溢出吧
      

  2.   

    select count(*) from (you sql)
    执行两次就不完了么!
    要是用PO基本不用两次!一次就把对象充满了!
      

  3.   

    1.要按照客户的需求去做,不是你当老板
    2.不是写最后1条数据,是把东西全写了最后写头
    3.SQL中有逻辑处理,是从SQL中的结果集中 进行相关逻辑筛选,较复杂
    4.1条1条的写 不是写1条就存文件 我前面讲了在1个WRITER内
    5.3楼根本没看懂,是先写后面的最后写头
    6.大型的政府系统,你想想数据量有多大,而且服务器不可能为了你1String 暂用那么多内存,还有1个String可以放2G,想笑,你JVN允许内存才多大,你什么事不用干了. 理论和实际差距太大