大家好,我现在在做一个小程序。从数据库中依次取出catalog,schema,table,column信息,利用StringBuffer拼接成类似xml字符串,写入文件。发生很奇怪的问题,拼接好的字符串可以在控制台完整的输出显示,但新建文件中是不完整的信息,只有一半左右的输出。文件大小是固定的16KB。
这是IO的问题,还是StringBuffer的问题,请大家帮助指点。多谢。文件输出部分
         File xmlfile = new File("d:\test.xml");
     PrintWriter out
        = new PrintWriter(new BufferedWriter(new FileWriter(xmlfile))); 
     out.println(xml.toString());

解决方案 »

  1.   

    和StringBuffer没关系吧,我曾经做过一个类似的功能,输出流的时候有个方法(忘了是哪个了)的其中一个参数是输出流的大小。如果指定小了的话,就会出现你所说的现象。你检查一下是不是这个原因。
      

  2.   

    new PrintWriter(new BufferedWriter(new FileWriter(xmlfile), 指定緩沖區大小));
      

  3.   

    谢谢大家的帮助。
    我在输出语句后加上
    out.flush();//将数据更新至文件
    一时解决了问题。以前调试时候把println()和flush()顺序搞混了,应该是先输出,后更新。
    的确是緩沖區大小的问题。
    多谢大家的指点。