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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| try {
//On instancie nos objets
bis_s = new BufferedInputStream(new FileInputStream(support_source));
raf_c = new RandomAccessFile(support_cible,"rw");
//bos = new BufferedOutputStream(new FileOutputStream(support2));
//On créer un tableau de byte
//pour dire de combien en combien on va lire les données
byte[] buf = new byte[512];
//On récupère le temps du systeme
long startTime = System.currentTimeMillis();
if(mode_source == 1){
if(mode_cible == 1){
//On réinitialise
startTime = System.currentTimeMillis();
raf_c.seek(sect_debut_cible * 512);
while(bis_s.available() > 0){
if(bis_s.available() < 512){
buf = new byte[bis_s.available()];
}
bis_s.read(buf);
System.out.print(raf_c.getFilePointer()+"\n");
raf_c.write(buf);
}
}
//On ferme le flux de données
bis_s.close();
raf_c.close();
}else if(mode_source == 2){
raf_s = new RandomAccessFile(support_source,"rw");
int taille_adr = sect_debut_source*512;
raf_s.seek(taille_adr);
raf_c.seek(sect_debut_cible * 512);
for(int j=sect_debut_source;j<=sect_fin_source;j++){
//System.out.print(raf_s.getFilePointer()+" "+raf_c.getFilePointer()+"\n");
raf_s.read(buf);
raf_c.write(buf);
}
//On ferme le flux de données
raf_s.close();
raf_c.close();
}
//On réaffiche
System.out.println("Temps de lecture + écriture avec BufferedInputStream et BufferedOutputStream : " + (System.currentTimeMillis() - startTime));
System.out.println("Copie terminée !");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} |
Partager