首页 > 其他 > 详细

InputStream写文件出现大量NUL

时间:2016-02-05 11:46:57      阅读:301      评论:0      收藏:0      [点我收藏+]

写文件大家出现最多的是汉字知码之类的问题,今天不是乱码问题,是出现在大量空字符,用记事本打开是不可见的。如果用NodePad++打开则会显示NUL

技术分享

问题分题:

刚开始以为是编码问题,试了几个编码发现问题依旧。后来发现在就在最后出来空字符应该是在写文件时出现了异常。请下以下两段代码

//有问题的代码
try
{ FileOutputStream fos = new FileOutputStream(filePath); byte[] b = new byte[1024];while((in.read(b)) != -1){ fos.write(b);  //问题在此,因为写的时候没设置长度每次都写1024个字节,导致最后不足1024个字节也会写入大量的空字符 } in.close(); fos.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }
//修改后的代码
try
{ FileOutputStream fos = new FileOutputStream(filePath); byte[] b = new byte[1024]; int len=-1; while((len=in.read(b)) != -1){ fos.write(b,0,len);//增加起始长度 每次都写入实际读到的长度,所以不会出现空字符。 } in.close(); fos.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }

技术分享

InputStream写文件出现大量NUL

原文:http://www.cnblogs.com/web369/p/5182855.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!