【发布时间】:2015-10-07 21:14:49
【问题描述】:
所以,我有一个方法可以将一些数据保存在属性文件中,但发生了一些奇怪的事情。看,假设我在桌面上有 JAR 文件。如果我直接从那里打开它(双击等),属性文件应该保存在桌面中。但是,如果您将 JAR 拖到 Windows 启动列表并从那里打开它,属性文件将保存在 System32 文件夹中。
方法如下:
private void saveAncientsData() {
Properties prop = new Properties();
OutputStream output = null;
try {
output = new FileOutputStream("ancients.data");
File file = new File("ancients.data");
// set the properties value
for (int x = 0; x < currentLvlSpinnerFields.size(); x++) {
prop.setProperty(ancientNames[x], currentLvlSpinnerFields.get(ancientNames[x]).getValue().toString());
}
// save properties to project root folder
prop.store(output, null);
JOptionPane.showMessageDialog(this, "Data successfully saved in \n\n" + file.getCanonicalPath(), "Saved", JOptionPane.INFORMATION_MESSAGE);
} catch (IOException io) {
io.printStackTrace();
} finally {
if (output != null) {
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
感谢任何帮助,因为我一无所知。
提前致谢!
【问题讨论】:
-
@FastSnail 将 SHORTCUT 拖到开始列表时实际上可以正常工作。拖动 JAR 文件时为什么会出现“问题”?
-
添加程序到开始列表时是否要在桌面创建属性文件?
-
"属性文件保存在桌面,应该如此。" * 我不确定这是一个正确的假设。您的代码指定了没有任何路径信息的目标文件名。那么为什么你认为它应该与jar文件保存到同一目录中呢?你能指出 java 文档说会是这种情况吗?
-
@Moko 你的属性文件应该在你的 jar 文件存在的地方创建。如果你创建快捷方式,你的实际文件存在于桌面。所以属性文件将在桌面中创建。你能告诉你如何将它拖到windows 启动列表?你把它拖到了哪个文件夹?
-
@EJK 好吧,我说“应该如此”,因为它应该与 JAR 保存在同一位置,并且 JAR 在桌面中。抱歉,我的意思不是听起来“令人困惑”。
标签: java outputstream fileoutputstream properties-file