超长字符串写入xml文件丢失

js_flybird 2010-06-04 11:49:40
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,打开文件就会发现,最后面少了一段,求高手帮助,万分感激。
...全文
184 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chan10 2010-06-04
  • 打赏
  • 举报
回复
bytes.length
ChDw 2010-06-04
  • 打赏
  • 举报
回复
int b=str.length(); //错误!str.length() != bytes.length

一个中文占用两个字符的!
冰思雨 2010-06-04
  • 打赏
  • 举报
回复
顶楼上的。

但是,还是要提醒一下楼主,会存在编码问题。
所以,建议楼主,不要把XML的整体内容,以String的形式保存。

因为,Java当中,String的编码是Unicode,操作系统,一般是GBK,或GB2312编码,XML一般是UTF-8编码。
猿敲月下码 2010-06-04
  • 打赏
  • 举报
回复
这样写岂不更好?
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();
}
lu7552215 2010-06-04
  • 打赏
  • 举报
回复
支持 支持
猿敲月下码 2010-06-04
  • 打赏
  • 举报
回复
byte bytes[]=new byte[8888];

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧