Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

java windows système de fichier

3 réponses
Avatar
tatane
Bonjour,

Je viens de développer une application java à titre de loisir sous
GNU/debian Linux Etch (sous licence GPL) qui fonctionne correctement sous
mon "unix" mais est destinée a être utilisée en majorité sous MS-Windows
(je pense). Je ne possède pas de logiciels propriétaire chez moi et je ne
peux donc faire l'essai sous MS-Windows, mais je l'ai fait vite fait au
boulot (j'ai pas le droit de le faire, c'est pour ça que je dit vite
fait).

J'ai une erreur lorsque je vais chercher mon fichier sur le système de
fichier (c:\....) lorsque le chemin possède au moins un espase. Donc la
jre me dit que le fichier est introuvable car j'ai l'impression que les
espaces sont remplacés par de %..

Je récupère le fichier à l'aide de la méthode la méthode
"getClass().getResource", où l'emplacement de ma resource est relatif à la
racine de mon projet (c'est pas un jar) :

// Chemin vers le fichier de configuration. private final static String
FICHIER_CONF = "/datas/fichierConfig.txt";

Properties propBD = new Properties(); FileInputStream entree = new
FileInputStream(this.getClass().getResource(FICHIER_CONF).getFile());
propBD.load(entree);

Faut peux-être mettre en forme l'url ou un truc du genre?

Merci de votre aide.

Stéphane

3 réponses

Avatar
TestMan
Bonjour,

Je viens de développer une application java à titre de loisir sous
GNU/debian Linux Etch (sous licence GPL) qui fonctionne correctement sous
mon "unix" mais est destinée a être utilisée en majorité sous MS-Windows
(je pense). Je ne possède pas de logiciels propriétaire chez moi et je ne
peux donc faire l'essai sous MS-Windows, mais je l'ai fait vite fait au
boulot (j'ai pas le droit de le faire, c'est pour ça que je dit vite
fait).

J'ai une erreur lorsque je vais chercher mon fichier sur le système de
fichier (c:....) lorsque le chemin possède au moins un espase. Donc la
jre me dit que le fichier est introuvable car j'ai l'impression que les
espaces sont remplacés par de %..

Je récupère le fichier à l'aide de la méthode la méthode
"getClass().getResource", où l'emplacement de ma resource est relatif à la
racine de mon projet (c'est pas un jar) :

// Chemin vers le fichier de configuration. private final static String
FICHIER_CONF = "/datas/fichierConfig.txt";

Properties propBD = new Properties(); FileInputStream entree = new
FileInputStream(this.getClass().getResource(FICHIER_CONF).getFile());
propBD.load(entree);

Faut peux-être mettre en forme l'url ou un truc du genre?

Merci de votre aide.

Stéphane


Bonjour,

Quel est votre besoin :

- enregistrer des paramètres utilisateurs : couleur du truc, position
du bidule, ... que l'utilisateur va modifier à tout moment et qu'il
escompte retrouver plus tard. ( == modifiable sans redéploiement)
- gérer des paramètres de l'application : parametres qui servent à
vous à prévoir une fonctionement prédéfinit de l'application. Et donc
non configurable par l'utilisateur via une quelconque interface ( == non
modifiable sans redéploiement).

Sinon, je vous invite à ne pas passer par du code style :

Properties configurationProperties = new Properties();
configurationProperties.load(this.getClass().
getResourceAsStream(FICHIER_CONF));

Ceci utilisera un encodage ISO-8859-1 par défaut, alors si vous avez
besoin d'internaitonalisation optez plutôt pour du UTF-8 :

InputStreamReader configurationReader = new
InputStreamReader(this.getClass().
getResourceAsStream(FICHIER_CONF),"UTF-8");
Properties configurationProperties = new Properties();
configurationProperties.load(configurationReader);

L'avantage de ce code est d'éviter le passage par un File et de le
rendre transparent lorsque vous embalerez tout dans un JAR pour faire un
déploiement webstart par exemple.

A+
TM

Avatar
tatane
Merci d'avoir répondu, je vais faire l'essai avec cette solution.

Mon besoin est d'enregistrer les paramètres de configuration prope à un
utilisateur. (expemple audio activé, volume, couleur de préférence etc..)

Pour être plus précis, voiçi l'erreur que je rencontre lorsque je lance
ma petit application depuis MS-Windows (j'ai encore fais la modification
préconisée):

C:Mes documentsbinLandesEternellesPlayersOnLine>java
gui.LandesEternellesPlay
ersOnLine
java.io.FileNotFoundException: C:Mes%
20documentsbinLandesEternellesPlayersOnL
inedatasfichierConfig.txt (Le chemin d'accÞs spÚcifiÚ est introuvable)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at divers.Configuration.getConfig(Configuration.java:71)
at gui.LandesEternellesPlayersOnLine.<init>
(LandesEternellesPlayersOnLin
e.java:74)
at gui.LandesEternellesPlayersOnLine.main
(LandesEternellesPlayersOnLine.
java:500)
Avatar
Insitu
tatane writes:

Merci d'avoir répondu, je vais faire l'essai avec cette solution.

Mon besoin est d'enregistrer les paramètres de configuration prope à un
utilisateur. (expemple audio activé, volume, couleur de préférence etc..)

Sinon, il y a aussi java.util.prefs qui fonctionne bien. C'est prévu

pour gérer ces problèmes de paramétrage/données utilisateurs et cela
gère tout seul la persistance, le chargement....

insitu.