黑马程序员技术交流社区
标题:
请教:复制的文件比原文件大
[打印本页]
作者:
杜桂发
时间:
2012-3-28 10:05
标题:
请教:复制的文件比原文件大
自己用java写了一个复制的程序,用fileinputstream , fileoutputstream , 作为输入流和输出流,byte[]作为缓冲区,但复制出来的文件都比原文件大.一直没找出原因,求指点
作者:
刘基军
时间:
2012-3-28 10:10
建议贴上代码
作者:
鲍亚坤
时间:
2012-3-28 10:17
不同的文件系统簇大小不同,存入文件后,有的簇可能没有完全占满,但是剩余的空间不能使用,所以看到的占用空间会比文件实际大小大,如果文件刚好是簇大小的整数倍就不会出现这种现象
作者:
王国华
时间:
2012-3-28 16:12
上代码才能分析出来原因,我只遇到过比原文件小的状况。。
作者:
罗杰
时间:
2012-3-28 17:09
这问题我也遇到过
你是不是没有判断读取数据长度就把整个byte[]都写到文件中了,这样在最后一次循环会写入多余的数据
没有你的代码,拿读取文件举例吧
FileInputStream fis = new FileInputStream("xxx.txt")
byte[] buf = new byte[1024]
int len = 0
while((len = fis.read(buf)) != -1)
{
syso(new String(buf,0,len));
}
复制代码
其中String(buf,0,len)
每次读取数据后要根据len规定String的长度
作者:
杜桂发
时间:
2012-3-29 19:08
呵呵,楼上正解.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2