InputStream写文件出现大量NUL
写文件大家出现最多的是汉字知码之类的问题,今天不是乱码问题,是出现在大量空字符,用记事本打开是不可见的。如果用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的更多相关文章
- InputStream读取文件到string后OutputStream到文件,按String和Bytes拷贝
http://www.iteye.com/problems/72150 写了一段代码 大体是 InputStream读取文件到string后OutputStream到文件 遇到的问题为TXT文件大小格 ...
- 嵌入式:使用dd命令制作烧写文件
1. 使用dd命令制作烧写文件 环境: bootargs=mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtd ...
- 【练习】Java中的读文件,文件的创建,写文件
前言 大家好,给大家带来Java中的读文件,文件的创建,写文件的概述,希望你们喜欢 读文件 public static void read(String path,String filename){ ...
- Java中的读文件,文件的创建,写文件
前言 大家好,我是 Vic,今天给大家带来Java中的读文件,文件的创建,写文件的概述,希望你们喜欢 示意图 读文件 public static void read(String path,Strin ...
- Java不写文件,LOAD DATA LOCAL INFILE大批量导入数据到MySQL的实现(转)
MySQL使用load data local infile 从文件中导入数据比insert语句要快,MySQL文档上说要快20倍左右.但是这个方法有个缺点,就是导入数据之前,必须要有文件,也就是说从文 ...
- 【每日日报】第三十二天---DataOutputStream写文件
1 今天继续看书 DataOutputStream写文件 1 package File; 2 import java.io.IOException; 3 import java.io.FileOutp ...
- 分享一个CQRS/ES架构中基于写文件的EventStore的设计思路
最近打算用C#实现一个基于文件的EventStore. 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客 ...
- Node.js写文件的三种方法
Node.js写文件的三种方式: 1.通过管道流写文件 采用管道传输二进制流,可以实现自动管理流,可写流不必当心可读流流的过快而崩溃,适合大小文件传输(推荐) var readStream = fs. ...
- iOS持续写文件到本地
NSString *tempSavePath = [NSString stringWithFormat:@"%@/Documents",kDocumentPath]; NSFile ...
随机推荐
- BeanUtils.populate 的作用
BeanUtils.populate( bean Object , Map ) --- 是BeanUtils工具类的一个方法: 在使用这个方法之前得有个 JavaBean .. 然后通过该方法将map ...
- POJ 3083 Children of the Candy Corn (DFS + BFS + 模拟)
题目链接:http://poj.org/problem?id=3083 题意: 这里有一个w * h的迷宫,给你入口和出口,让你分别求以下三种情况时,到达出口的步数(总步数包括入口和出口): 第一种: ...
- Python3 集合(无序的set)
ayout: post title: Python3 集合(无序的set) author: "luowentaoaa" catalog: true tags: mathjax: t ...
- order by 中利用 case when 排序
order by case when a.ShopNumber in(1,2,3) then 0 else 1 end
- HDU 1166 敌兵布阵 <线段树 单点修改 区间查询>
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- POJ 1180 Batch Scheduling(斜率优化DP)
[题目链接] http://poj.org/problem?id=1180 [题目大意] N个任务排成一个序列在一台机器上等待完成(顺序不得改变), 这N个任务被分成若干批,每批包含相邻的若干任务. ...
- Spark机器学习:TF-IDF实例讲解
测试数据源:20 Newsgroups (http://qwone.com/~jason/20Newsgroups/),其中包含20个领域的新闻,此次我们使用20news-bydate-train作为 ...
- SSH学习——声明式事物管理(Spring)
1.什么是事物? 事务是一组操作的执行单元,相对于数据库操作来讲,事务管理的是一组SQL指令,比如增加,修改,删除等,事务的一致性,要求,这个事务内的操作必须全部执行成功,如果在此过程种出现了差错,比 ...
- IntelliJ IDEA字符串常量长度太长的问题解决:constant string too long
Java compiler下的Use compiler为Eclipse:
- MetaWeblog是什么
MetaWebBlog API(MWA)是一个Blog程序接口标准,允许外部程序来获取或者设置Blog的文字和熟悉.他建立在XMLRPC接口之上,并且已经有了很多的实现. 所以现在很多博客系统都支持这 ...