Вы можете использовать сериализацию, XML или JSON (обычно с дополнительными библиотеками). Простой способ сохранить данные конфигурации в файлах - использовать файлы свойств Java, которые поддерживаются JRE без каких-либо дополнительных зависимостей. Файлы свойств являются текстовыми файлами и имеют простой синтаксис key=value
, см. Ниже. Чтобы записать два значения в файл свойств, вы можете сделать
String prop1 = "foo";
String prop2 = "bar";
try (OutputStream output = new FileOutputStream("config.properties")) {
Properties prop = new Properties();
// set the properties value
prop.setProperty("prop1", prop1);
prop.setProperty("prop2", prop2);
// save properties to project root folder
prop.store(output, "my app's config file");
} catch (IOException io) {
io.printStackTrace();
// TODO: improve error handling
}
, что должно дать вам что-то вроде
#my app's config file
#Sat Feb 29 12:29:27 CET 2020
prop2=bar
prop1=foo
И загрузить его:
try (InputStream input = new FileInputStream("config.properties")) {
Properties prop = new Properties();
// load a properties file
prop.load(input);
// get the property value and print it out
String prop1 = prop.getProperty("prop1");
String prop2 = prop.getProperty("prop2");
System.out.println("prop1 = " + prop1);
System.out.println("prop2 = " + prop2);
} catch (IOException ex) {
ex.printStackTrace();
// TODO: improve error handling
}
Для целочисленные значения, вам понадобится преобразование некоторых типов, например, первые две строки будут
String prop1 = Integer.toString(23);
String prop2 = Integer.toString(42);
, а чтение свойств затем станет
int prop1 = Integer.parseInt(prop.getProperty("prop1"));
int prop2 = Integer.parseInt(prop.getProperty("prop2"));
. Это решение плохо масштабируется в случае, если число свойств увеличивается или происходят частые изменения. Более общую процедуру c смотрите в этом посте: Получить int, float, boolean и string из Properties