Я написал программу для разбиения и объединения файлов. Когда я разбиваю файл на мелкие куски, я обнаружил, что размер меньшего файла не равен исходному, происходит потеря приблизительно 30-50 байтов данных. и объединенный файл работает неправильноРазделение файлов данных данных
например. файл ABC был разбит на 2 части, АВС1 и 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() в свой код, но по-прежнему та же проблема возникает, когда я присоединяюсь к моему файлу, он не запускается, и данные все еще теряются. –
Могу я видеть, где вы его добавляете? также добавьте код присоединения файла. –
с close() мне нужно добавить flush(), после чего он работает. спасибо –