我寫了一個文件分割和加入的程序。當我將文件分成小塊時,我發現較小文件的大小與原始大小不相等,會丟失大約30-50個字節的數據。並且組合文件不能正確運行文件分割丟失數據
例如,一個文件ABC被分成了兩個部分,ABC1和ABC2但問題是 sizeof(ABC)
是不等於sizeof(ABC1)
+ sizeof(ABC2)
。由sizeof(ABC)
我的意思是從Windows的角度來看,即從Windows屬性對話框。
我的代碼是:
for(int i =0;i<no_of_parts;i++)
{
copied_data = 0;// a variable that count the no of byte transferred in the part of file
fos = new FileOutputStream(jTextField2.getText()+"\\".part"+i);
bouts = new BufferedOutputStream(fos);
while((b = bins.read())!= -1)
{
bouts.write(b);
copied_data++;
if(copied_data==each_part_size_in_byte)
break;
}
}
我在我的代碼中添加了這個bouts.close(),但仍然存在相同的問題,當我加入我的文件時,它不運行,數據仍然丟失。 – 2012-03-17 12:58:35
我可以看到你添加它的位置嗎?還要添加文件加入的代碼。 – 2012-03-17 13:03:52
用close()我需要添加flush(),之後它工作。謝謝 – 2012-03-17 13:11:12