我将我的程序导出到一个jar文件中,但是当我运行它时,似乎程序找不到.properties文件。我确定它是在jar文件&它在导出之前工作正常。我读过一些关于使用getClass().getResourceAsStream()
而不是FileInputStream
和FileOutputStream
的内容,但似乎无法理解这会有什么帮助。有任何想法吗?这些是使用该文件的两种方法。
private void UpdateData() throws IOException{
FileInputStream in = new FileInputStream("config.properties");
Properties props = new Properties();
props.load(in);
in.close();
FileOutputStream out = new FileOutputStream("config.properties");
props.setProperty("prop1", prop1TextArea.getText().toString());
props.setProperty("prop2", prop2TextArea.getText().toString());
props.setProperty("prop3", prop3TextArea.getText().toString());
props.store(out, null);
out.close();
}
private void setText() throws IOException {
FileInputStream in = new FileInputStream("config.properties");
Properties props = new Properties();
props.load(in);
in.close();
FileOutputStream out = new FileOutputStream("config.properties");
prop1TextArea.setText(props.getProperty("prop1"));
prop2TextArea.setText(props.getProperty("prop2"));
prop3TextArea.setText(props.getProperty("prop3"));
out.close();
}
答案 0 :(得分:3)
要访问.jar
文件中的资源,您必须以资源而非文件的形式访问它们。
.properties
不在文件系统中,因此您无法通过FileInputStream
访问它们。
如果您想在之后保存它们,则必须在程序的第一次启动时创建新的.properties
。因此,您必须首先检查文件是否存在(例如,通过File.exists()
),并且在没有文件属性的情况下工作或创建新文件然后使用它。