1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
FileInputStream in = new FileInputStream(entree);
FileOutputStream out = new FileOutputStream(sortie);
byte [] Block = new byte[18874368];
long TailleFichier = (new File(entree)).length();
//Nombre de bolcks d'une taille de 18M
long NbBlocks = ((new File(entree)).length())/18874368;
//Compteur de blocks enregistrés
long Compteur = 1;
//L'offset d'enregistrement
long CompteurBlocks = 0;
//La taille d'écriture
long avancement = 0;
while(in.read(Block) != -1){
//calcul de l'Offest
CompteurBlocks = (Compteur-1)*18874368;
//écriture à partir de l'offest avec un enregistrement "avancement"
out.write(Block, (int)CompteurBlocks, (int)avancement);
//un bloc de plus écris
Compteur++;
//vers la fin du fichier
if(Compteur == NbBlocks){
avancement = TailleFichier - (Compteur*18874368);
Block = new byte[(int)avancement];
}else{
avancement = Block.length;
}
}
in.close();
out.close(); |
Partager