Properties – zapisywanie i odczytywanie (2)
Obiekt Properties
to hashmapa przechowująca pary wartości: „nazwa właściwości – wartość” podane jako łańcuchy znaków. Properties
zapisuje się do plików .properties, które maja kodowanie UTF-8.
Możemy uzyć różnych klas. Tutaj pokazuję użycie klas FileWriter
i FileReader
.
Zapisywanie – klasa Writer
Klasa R020.java
package aderby.start; import aderby.DerbyUtil; import java.io.*; import java.nio.charset.StandardCharsets; import java.util.Properties; public class R020 { public static void main(String[] args) { Properties props = new Properties(); props.put("user", "Jacek"); props.put("password", "abcdefgh"); props.put("create", "true"); props.put("nazwa", "ąęśćżźółń"); FileWriter wr = null; try { wr = new FileWriter("aderby/src/resources/props/r020.properties", StandardCharsets.UTF_8); props.store(wr, "Właściwości startowe"); } catch (IOException e) { e.printStackTrace(); } DerbyUtil.close(wr); } }
Po uruchomieniu klasy otrzymamy plik r020.properties:
#Właściwości startowe #Fri Nov 11 16:39:16 CET 2022 create=true nazwa=ąęśćżźółń password=abcdefgh user=Jacek
Odczytywanie – klasa Reader
Klasa R020a.java
package aderby.start; import aderby.DerbyUtil; import java.io.*; import java.nio.charset.StandardCharsets; import java.util.Map.Entry; import java.util.Properties; import java.util.Set; public class R020a { public static void main(String[] args) { FileReader fr = null; Properties props = new Properties(); try { fr = new FileReader("aderby/src/resources/props/r020.properties", StandardCharsets.UTF_8); props.load(fr); } catch (IOException e) { e.printStackTrace(); } //albo Set<Entry<Object, Object>> pr = props.entrySet(); for (Entry<Object, Object> entry : pr) { String nazwa = (String) entry.getKey(); String value = (String) entry.getValue(); System.out.println(nazwa + "=" + value); } //albo //props.forEach((key, value) -> System.out.println(key + ": " + value)); String user = props.getProperty("user"); System.out.println(user); DerbyUtil.close(fr); } }
Po użyciu klasy na konsoli zobaczymy:
password=abcdefgh create=true nazwa=ąęśćżźółń user=Jacek Jacek
Pliki do ściągnięcia
Aktualny (tworzony narastająco) plik module-info.java
Aktualny (tworzony narastająco) plik DerbyUtil.java
Pliki tworzone narastająco zastępują poprzednie pliki o tej samej nazwie i działają dla wszystkich wcześniej opublikowanych przykładów we wszystkich wpisach w projekcie. W przypadku pliku module-info.java
może być potrzebne skreślenie niepotrzebnych wpisów.