Che*_*eng 25
我通常存储在用户数据目录中,应用程序名称的子目录后跟应用程序版本.
public static String getUserDataDirectory() {
return System.getProperty("user.home") + File.separator + ".jstock" + File.separator + getApplicationVersionString() + File.separator;
}
Run Code Online (Sandbox Code Playgroud)
我使用以下代码已有3年了.这种方法在Windows,Linux或Mac中都能很好地工作.
请注意,在Windows中,永远不要存储它Program Files,因为Windows Vista或更高版本中的UAC可能会给您带来很多麻烦.
记住在应用程序名称前加一个点,这样它就会成为Linux中的隐藏文件夹.
使用这种方法的好处是,你不仅仅限制你自己存储原始值.相反,您可以使用xstream将整个对象状态保存到磁盘
例如 :
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;
}
Run Code Online (Sandbox Code Playgroud)
djn*_*jna 13
安全地存储单个密码非常困难.假设您使用某个密钥加密密码.然后,当您的applciation再次启动时,它需要该密钥,它从哪里获得?
如果它询问用户,那么他也可以输入您首先存储的ftp密码.如果它从某个地方读取密钥,那么你需要保护密钥,我们回到我们开始的地方.
如果您要保留多个密码,那么向用户询问某个"保险库"的单个密码可能会更加友好,但您会遇到处理过期密码的所有麻烦.
有些产品可用于处理这些问题,如果您有严重的需求,那么您可能需要对它们进行调查.
| 归档时间: |
|
| 查看次数: |
51178 次 |
| 最近记录: |