Mede12
Messages postés8Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention29 mai 2008
-
28 mai 2008 à 15:24
Mede12
Messages postés8Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention29 mai 2008
-
29 mai 2008 à 09:21
Bonjour,
J'ai un petit problème pour récupérer un fichier texte qui se trouve dans un JAR(avec du code).
J'ai regardé pas mal de post, la plus part disaient que l'on peut déziper le .jar et récupérer le fichier... (ok mais ce n'est pas ce que je cherche à faire)
J'ai regardé les javadoc (mais quand on ne sais pas ce que l'on cherche ce n'est pas facile à utiliser...), j'ai vue des trucs du genre JarEntry ou JarInputStream mais je n'est pas très bien saisie leur fonctionnement (voir pas du tout).
Ce que j'aimerais faire c'est une copie d'un fichier texte qui est à l'intérieur du .jar et de l'éditer par la suite.
Pour l'instant j'arrive à lire le fichier texte mais pas à créer une copie de celui-ci...
Si vous avez des éléments pour me mettre sur la voie je suis preneur.
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 28 mai 2008 à 18:12
Salut,
pour ce qui est de la base tu peux faire au plus simple :
int bytes= 0;
byte[] buffer = new byte[1024];
InputStream in = getClass().getResourceAsStream("/Rep.txt");
OutputStream out = new FileOutputStream("Rep.txt");
Mede12
Messages postés8Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention29 mai 2008 28 mai 2008 à 17:34
Merci de t'as réponse.
J'ai déjà utilisé la méthode getResourceAsStream().
J'ai fais un truc un peu barbare à goût...
Avec cette méthode je lis tout le document et j'enregistre ligne par ligne dans une arrayList[ligne].
Une fois que j'ai mon arraylist je crée un nouveau document du même nom dans le dossier actuel en réécrivant le tout...
ça donne ça: ( pour les intéressé )
try{
InputStream in = getClass().getResourceAsStream("/Rep.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(in));
do{
line.add(numLigne,br.readLine());
numLigne++;
}while ( !line.get(numLigne-1).equals("fin"));
br.close();
OutputStream out = new FileOutputStream("Rep.txt");
BufferedWriter output = new BufferedWriter(new OutputStreamWriter(out));
for(int i=0; i < numLigne; i++){
output.write(line.get(i));
output.write("\r\n");
}
output.flush();
output.close();
}catch(IOException ioe){
System.out.println("erreurEc1 : " + ioe );
}
Mede12
Messages postés8Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention29 mai 2008 28 mai 2008 à 18:24
okay merci.
Si j'ai bien compris le principe de mettre un byte[], c'est que je vais récupérer les 1024 prochain caractères à partir de zéro et ça temps que la ligne n'est pas vide ?
M'enfin merci beaucoup de votre aide je vais mettre un "Résolu" parce que j'ai mon programme qui tourne même s'il n'est pas optimisé :p
Vous n’avez pas trouvé la réponse que vous recherchez ?
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 28 mai 2008 à 19:05
Salut,
"
okay merci.
"
>> mais de rien
"Si j'ai bien compris le principe de mettre un byte[], c'est que je vais
récupérer les 1024 prochain caractères à partir de zéro et ça temps que
la ligne n'est pas vide ?
"
>>nan pas vraiment ici tu vas lire (au maximum 1024 (ou plus si tu changes)) tant qu'il y a des données à lire et au passage écrire dans le nouveau fichier...
maintenant si tu veux lire ligne par ligne utilise la classe Scanner (dispo depuis le jdk 1.5)
"M'enfin merci beaucoup de votre aide je vais mettre un "Résolu" parce
que j'ai mon programme qui tourne même s'il n'est pas optimisé :p"
>>tu peux toujours donner les routines que tu veux optimiser ou que tu trouves 'crade' histoire de voir si il y a moyen de faire quelque chose dessus.
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
Mede12
Messages postés8Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention29 mai 2008 29 mai 2008 à 09:21
Merci pour tout ! =)
A bientôt je pense :p
PS: je n'ai pas utilisé scanner parce que j'ai commencé mon projet en 1.4.0 (je ne comprenais pas pourquoi le scanner ne marché pas .. alors j'ai utilisé la vielle méthode :) )