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
Możemy uzyć różnych klas. Tutaj pokazuję użycie klas FileWriter i FileReader.

Zapisywanie – klasa Writer

Klasa R019a.java
1    package aderby.start;
2    
3    import aderby.DerbyUtil;
4    
5    import java.io.*;
6    import java.nio.charset.StandardCharsets;
7    import java.util.Properties;
8    
9    public class R019a {
10       public static void main(String[] args) {
11           Properties props = new Properties();
12           props.put("user", "Jacek");
13           props.put("password", "abcdefgh");
14           props.put("create", "true");
15           props.put("nazwa", "ąęśćżźółń");
16           FileWriter wr = null;
17           try {
18               wr = new FileWriter("aderby/src/resources/props/r019a.properties", StandardCharsets.UTF_8);
19               props.store(wr, "Właściwości startowe");
20           } catch (IOException e) {
21               e.printStackTrace();
22           }
23           DerbyUtil.close(wr);
24       }
25   }
26   

Po uruchomieniu klasy otrzymamy plik r019a.properties:

1    #W\u0142a\u015Bciwo\u015Bci startowe
2    #Sun Oct 27 09:19:02 CET 2019
3    password=abcdefgh
4    create=true
5    user=Jacek
6    nazwa=ąęśćżźółń
7    

Odczytywanie – klasa Reader

Klasa R020a.java
1    package aderby.start;
2    
3    import aderby.DerbyUtil;
4    
5    import java.io.*;
6    import java.nio.charset.StandardCharsets;
7    import java.util.Map.Entry;
8    import java.util.Properties;
9    import java.util.Set;
10   
11   public class R020a {
12       public static void main(String[] args) {
13           FileReader fis = null;
14           Properties props = new Properties();
15           try {
16               fis = new FileReader("aderby/src/resources/props/r019a.properties", StandardCharsets.UTF_8);
17               props.load(fis);
18           } catch (IOException e) {
19               e.printStackTrace();
20           }
21           Set<Entry<Object, Object>> pr = props.entrySet();
22           for (Entry<Object, Object> entry : pr) {
23               String nazwa = (String) entry.getKey();
24               String value = (String) entry.getValue();
25               System.out.println(nazwa + "=" + value);
26           }
27           String user = props.getProperty("user");
28           System.out.println(user);
29           DerbyUtil.close(fis);
30       }
31   }
32   

Po użyciu klasy na konsoli zobaczymy:

password=abcdefgh
create=true
user=Jacek
nazwa=ąęśćżźółń
Jacek

Pliki do ściągniecia

Klasa R019a.java
Klasa R020a.java
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 wszyskich wpisach w projekcie. W przypadku pliku module-info.java może być potrzebne skreślenie niepotrzebnych wpisów.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *