1
我已經編寫了下面的代碼來檢查屬性文件是否存在並且具有所需的屬性。如果它存在,則打印文件存在並且完整的消息,如果不存在,則它將創建具有所需屬性的屬性文件。檢查屬性文件是否存在並且需要屬性
我想知道的是,有沒有更優雅的方式來做到這一點,或者我的方式幾乎是最好的方式?此外,我遇到的小問題是,通過這種方式,它不檢查不應該存在的額外屬性,有沒有辦法做到這一點?
總結我的要求:
- 檢查文件是否存在
- 檢查它是否具有所需性能
- 檢查是否有額外的屬性
- 創建所需的屬性,如果該文件它不存在或者如果有額外的或缺少的屬性
Source files and Netbeans Project download
來源:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Properties;
public class TestClass {
public static void main(String[] args) {
File propertiesFile = new File("config.properties");
if (propertiesFile.exists() && propertiesExist(propertiesFile)) {
System.out.println("Properties file was found and is intact");
} else {
System.out.println("Properties file is being created");
createProperties(propertiesFile);
System.out.println("Properties was created!");
}
}
public static boolean propertiesExist(File propertiesFile) {
Properties prop = new Properties();
InputStream input = null;
boolean exists = false;
try {
input = new FileInputStream(propertiesFile);
prop.load(input);
exists = prop.getProperty("user") != null
&& prop.getProperty("pass") != null;
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return exists;
}
public static void createProperties(File propertiesFile)
{
Properties prop = new Properties();
OutputStream output = null;
try {
output = new FileOutputStream(propertiesFile);
prop.setProperty("user", "username");
prop.setProperty("pass", "password");
// save properties to project root folder
prop.store(output, null);
} catch (IOException io) {
io.printStackTrace();
} finally {
if (output != null) {
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}