日期:2014-05-20  浏览次数:20788 次

FileInputStream的read(byte[] b) 问题。。
我用read(byte[] b)读二进制数据,然后再写到另一个文件中。read(byte[] b)读到源文件的最后部分,数组放不满,数组后半部分留有倒数第二次的数据,这两部分都被写进目标文件了。。这怎么解决一下??



------解决方案--------------------
你应该用这个方法读取:read(byte[] b, int off, int len)
eg:
OutputStream fos2 = new FileOutputStream("text2.txt",true);
InputStream fis = new FileInputStream("test1.txt");
byte[] buffer = new byte[1024];
int length;
while(-1 != (length=fis.read(buffer))){
System.out.println(new String(buffer, 0, length));
fos2.write(buffer, 0, length);
}