cyriprog
Messages postés2Date d'inscriptionsamedi 29 juillet 2006StatutMembreDernière intervention23 octobre 2008 23 oct. 2008 à 18:12
1) Le 10Ko correspond à la taille du buffer de copie. C'est le tableau qui contient les données en provenance du fichier à copier et à destination du fichier de destination. En somme plus la taille de ce tableau est élevé, moins tu feras d'accès au disque mais plus cela nécessitera de mémoire dans ton application java.
2) Il est exacte que j'ai beaucoup complexifié le travail mais lorsque j'écrit des fichiers tels que celui-ci j'aime à ce qu'il y ait autant de fonctionnalités que possible (toutes celles auxquelles je pense) et que les données soit paramétrables au maximum (ça peut toujours être utile).
3) Pour ce qui est de faire une copie simple de fichier, tu dispose de la dernières méthodes du fichier :
public static void copier(String ficLu, String ficEcrit) throws IOException;
pch_hotline
Messages postés4Date d'inscriptionmardi 4 avril 2006StatutMembreDernière intervention 3 novembre 2008 23 oct. 2008 à 10:42
moi je comprends pas pourquoi ce 10Ko qu'il traine partout. Aucune methode pour faire de la copie de fichier simplement comme tous les shells le proposent. Je trouve c un avis personnel que tu as complique un boulot simple
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 18 sept. 2006 à 09:33
Effectivement, aucun flux n'est fermés :s, merci de corriger cela rapidement. Ah ces nouveaux codeurs Java !!! :p (c gentil ;-))
cs_iubito
Messages postés629Date d'inscriptionmercredi 3 juillet 2002StatutMembreDernière intervention 9 octobre 2006 18 sept. 2006 à 04:48
Par hasard, n'oublierais-tu pas de fermer tes streams ? Voici le code propre, avec fermeture des streams sur un finally d'un try. Car si tu as une exception au milieu de la copie (mémoire ou disque plein par exemple), il faut bien fermer les stream, sinon ton fichier sera toujours marqué comme "tenu" en écriture, et tu auras du mal à l'ouvrir par exemple.
FileInputStream read = new FileInputStream(ficLu);
try {
FileOutputStream write = new FileOutputStream(ficEcrit);
try {
byte[] tabLu = new byte[tailleCopie];
int nbLu;
while((nbLu = read.read(tabLu)) > 0){
write.write(tabLu,0,nbLu);
}
} finally {
write.close();
}
} finally {
read.close();
}
23 oct. 2008 à 18:12
2) Il est exacte que j'ai beaucoup complexifié le travail mais lorsque j'écrit des fichiers tels que celui-ci j'aime à ce qu'il y ait autant de fonctionnalités que possible (toutes celles auxquelles je pense) et que les données soit paramétrables au maximum (ça peut toujours être utile).
3) Pour ce qui est de faire une copie simple de fichier, tu dispose de la dernières méthodes du fichier :
public static void copier(String ficLu, String ficEcrit) throws IOException;
23 oct. 2008 à 10:42
18 sept. 2006 à 09:33
18 sept. 2006 à 04:48
FileInputStream read = new FileInputStream(ficLu);
try {
FileOutputStream write = new FileOutputStream(ficEcrit);
try {
byte[] tabLu = new byte[tailleCopie];
int nbLu;
while((nbLu = read.read(tabLu)) > 0){
write.write(tabLu,0,nbLu);
}
} finally {
write.close();
}
} finally {
read.close();
}