Ecrire dans un fichier texte dans un fichier jar

Résolu
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 - 15 juin 2007 à 11:02
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 - 15 juin 2007 à 15:26
Salut à tous!

Bon voilou, j'ai bien cherché (je crois) et je n'ai pas trouvé de réponse à cette question : J'ai un fichier jar exécutable et j'aimerais écrire dans un fichier texte.
J'ai déjà trouvé pour lire un fichier texte dans un jar :
        InputStream in = ClassLoader.getSystemResourceAsStream("META-INF/account");
        BufferedReader lecteurAvecBuffer = new BufferedReader(new InputStreamReader(in));

Mais pour écrire dans un fichier, je n'ai point trouvé.
Alors voilà, déjà, est-ce possible???
Merci de vos réponses.
+
C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!

12 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
15 juin 2007 à 11:33
Ah ! là c'est différent, et je suis pas sûr que ca soit possible.
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
15 juin 2007 à 13:27
Salut,

tu peux decompresser et
re-creer ton jar dans le rep temp de l'OS (attention ne remplace
pas le jar en cours d'execution sinon tu risques d'avoir un décalage du
code (sauf si tu te fais  ton classloader et que tu précharges le code
en ram mais encore là c'est pas terrible))

pour toper le rep temp du système :

String tmpDir = System.getProperty("java.io.tmpdir");

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
15 juin 2007 à 11:11
Utilise un FileWriter (il me semble que ca s'appelle comme cà).
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
15 juin 2007 à 11:15
Le problème, c'est qu'un FileWriter prend en argument un File.
Or, si j'utilise normalement les File, avec Eclipse, cela va marcher, mais avec le jar, pas du tout.
Donc, voilà, je cherche une alternative...
C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
15 juin 2007 à 11:24
Ben tu veux écrire dans un fichier texte, pas dans ton jar non ?

Le fileWrite prend le fichier de destination, et après tu lui envoie juste les données que tu veux copier.
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
15 juin 2007 à 11:29
Si en fait, mon fichier texte se trouve dans le jar.
C'est là tout le problème.
L'ultime solution serait de créer un fichier texte temporaire... mais bon si je pouvais savoir comment écrire dans le fichier texte dans le jar, ça serait "vachement" cool.
C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
15 juin 2007 à 11:36
D'après ce que j'ai vu sur le net, ça ne serait pas possible... A part de recréer un jar, avec le nouveau fichier à l'intérieur...
Pas terrible, n'est ce pas?
Bon allé, tant pis je vais me faire un fichier temporaire qui dépendra de l'OS utilisé, ça sera pas mal quand même ^^
Merci à toi DARKSIDIOUS et puis bon week end.
++
C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
15 juin 2007 à 11:53
Pourquoi dépend de l'OS ?
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
15 juin 2007 à 13:53
Ouais mais en fait, je créé un fichier temporaire au lieu de recréer un archive jar. C'est moins pénible à faire...
System.getProperty("user.home") et hop ça roule. C'est juste que le fichier ne pourra pas être le même sur une autre machine mais bon tant pis.
Merci quand même Twinuts, et merci à toi DARKSIDIOUS.

" See you soon, space cowboy! "
C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
15 juin 2007 à 13:56
Ah, j'avais pas vu ton post DARKSIDIOUS, désolé.

"

Pourquoi dépend de l'OS ? " me demandes tu? Tout simplement, parce que si je mettais en dur : "C:\temp...." bon ça le fait moyen sur un système Linux. Et, étant donnné que je suis plus Linux que Windows, il me fallait un truc qui marche sur ces deux plate-formes.
Donc, avec le System.getProperty c'est niquel.
Voilou,
++
C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
15 juin 2007 à 14:50
Salut,

profite du System.getProperty("java.io.tmpdir")
sous Windows
C:\WINDOWS\TEMP (ou un autre disque si windows n'est pas sur C:
sous Linux
/tmp

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
15 juin 2007 à 15:26
Ouais mais en fait, que ça reste après la fermeture de la session, ça me serait pas trop mal... Un peu, une sorte de sauvegarde que je fais donc bon, dans mon contexte, finalement, je m'en tire bien.

Merci quand même Twinuts
Il est vrai que java.io.tmpdir est pratique dans d'autre cas (notament pour décompresser des fichiers afin de manipuler les fichiers plus simplement...)
C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!
0
Rejoignez-nous