String str = rsmDrkiService.getReportForOrganization(rsmDrkiVO);
try{
    FileOutputStream fos = new FileOutputStream(new File("d:\\test.xml"));
    byte bytes[]=new byte[1024];
    bytes=str.getBytes();
    int b=str.length();
    fos.write(bytes,0,b);
    fos.close();
}catch(Exception e){
    e.printStackTrace();
}str是一个很长的字符串,大概400多K,但是写到文件里只有400K,打开文件就会发现,最后面少了一段,求高手帮助,万分感激。

解决方案 »

  1.   

     int b=str.length(); //错误!str.length() != bytes.length一个中文占用两个字符的!
      

  2.   

    byte bytes[]=new byte[8888];
      

  3.   

    这样写岂不更好?
    String str = rsmDrkiService.getReportForOrganization(rsmDrkiVO);
    try{
    BufferedWriter writer = new BufferedWriter(new FileWriter("d:/test.xml"));
    writer.append(str);
    writer.close();
    }catch(Exception e){
      e.printStackTrace();
    }
      

  4.   

    顶楼上的。但是,还是要提醒一下楼主,会存在编码问题。
    所以,建议楼主,不要把XML的整体内容,以String的形式保存。因为,Java当中,String的编码是Unicode,操作系统,一般是GBK,或GB2312编码,XML一般是UTF-8编码。