je stocke habituellement dans le répertoire de données utilisateur, avec des sous-répertoires de nom de l'application suivie par la version de l'application.
public static String getUserDataDirectory() {
return System.getProperty("user.home") + File.separator + ".jstock" + File.separator + getApplicationVersionString() + File.separator;
}
J'avais utilisé le code suivant pendant 3 ans. Cette méthode fonctionne plutôt bien sous Windows, Linux ou Mac.
Veuillez noter que, dans Windows, ne le stockez jamais en Program Files
, car l'UAC sous Windows Vista ou plus récent peut vous causer beaucoup de problèmes. N'oubliez pas de mettre un point devant le nom de votre application, afin qu'il devienne un dossier caché sous Linux.
Bonne chose en utilisant cette méthode est que, vous ne vous limitez pas à stocker la valeur primitive seulement. Au lieu de cela, vous pouvez enregistrer l'état objet entier sur le disque en utilisant xstream
Par exemple:
public static boolean toXML(Object object, File file) {
XStream xStream = new XStream();
OutputStream outputStream = null;
Writer writer = null;
try {
outputStream = new FileOutputStream(file);
writer = new OutputStreamWriter(outputStream, Charset.forName("UTF-8"));
xStream.toXML(object, writer);
}
catch (Exception exp) {
log.error(null, exp);
return false;
}
finally {
close(writer);
close(outputStream);
}
return true;
}
Où allons-nous stocker la clé requise? –
Nice introduction tutoriel ici: http://www.mkyong.com/java/java-properties-file-examples/ –
Je tiens à noter que sur Windows, vous devrez peut-être changer le registre si vous utilisez les préférences. Pour un utilisateur normal de votre application, cela peut être un bloqueur (non-go!). –