InputStream写文件出现大量NUL
2016-02-05 10:53
501 查看
写文件大家出现最多的是汉字知码之类的问题,今天不是乱码问题,是出现在大量空字符,用记事本打开是不可见的。如果用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(); }
相关文章推荐
- LOB字段存放在指定表空间 清理CLOB字段及压缩CLOB空间
- 2016就业市场 高薪和低潮在哪里?
- 将树莓派Raspberry Pi设置为无线路由器(WiFi热点AP,RTL8188CUS芯片)
- 关于C语言中进制问题以及简单的浅谈进制转化问题。
- 1002. 写出这个数
- Item 16: 让const成员函数做到线程安全
- EasyUi图标
- 从request获取各种路径总结
- 怎么实现iMindMap视图间的快速切换
- Linux脚本参数之if fi
- Item 15: 只要有可能,就使用constexpr
- jsp的页面包含——静态包含、动态包含
- 全面解析Linux的grep命令中正则表达式的用法
- Gatling官网教程翻译之Simulation Structure
- Item 14: 如果函数不会抛出异常就把它们声明为noexcept
- Item 13: 比起iterator优先使用const_iterator
- setitimer函数
- 关于spark运行FP-growth算法报错com.esotericsoftware.kryo.KryoException
- 订餐系统——Gridview、Repeater和DataList 区别
- Item 12: 把重写函数声明为“override”的