Soubory vlastností, property files
Soubory vlastností, property files
-
Textové soubory formátu: řádek = záznam
-
Každý záznam má podobu: klíč=hodnota
-
Jsou to texty, je jen na nás, jak hodnotu interpretujeme.
iconSize=24
iconImg=myico.png
iconTitle=My icon
Příklad použití
import java.util.Properties;
...
Properties iconProps = new Properties();
iconProps.loadFromXML(new FileInputStream("iconProps.properties"));
int size = Integer.parseInt(iconProps.getProperty("iconSize"));
Konfigurace aplikace pomocí Properties
?
-
Chceme
Properties
pro nastavení/konfiguraci aplikace? -
Možná jsou lepší alternativou
java.util.prefs
: -
java.util.prefs.Preferences
-
Podobný princip jako "systémové registry" ve Windows nebo soubory
.rc
v Linuxu -
Konfigurace specifická pro celý systém (=všechny uživatele dané aplikace)
-
Konfigurace specifická pro jednoho uživatele dané aplikace
Kódování souborů vlastností
-
V předchozích verzích se pro načítání balíčků prostředků vlastností používalo kódování ISO-8859-1 (=ISO Latin 1).
-
Je OK pro západní abecedy.
-
Již pro evropské východní nevyhovuje, pro asijské vůbec.
Soubory vlastností UTF-8 od Java 9
-
V Javě SE 9 se soubory vlastností načítají v kódování UTF-8.
-
UTF-8 je mnohem pohodlnější způsob reprezentace nelatinkových znaků.
-
Načítač umí dokonce rozpoznat, kdy jsou v souboru .properties non-UTF-8 znaky, čili jedná se o starý formát ISO-Latin-1. Pak to načte opakovaně správně.
Kompatibilita
-
Většina stávajících souborů vlastností by neměla být ovlivněna
-
UTF-8 a ISO-8859-1 mají stejné kódování pro znaky ASCII.
-
Lidsky čitelné ne-ASCII kódování ISO-8859-1 není platné UTF-8.
-
Pokud je zjištěna neplatná posloupnost bajtů UTF-8, běhové prostředí Javy automaticky znovu načte soubor v kódování ISO-8859-1.
Pokud se vyskytne problém, zvažte následující možnosti:
-
Převeďte soubor vlastností do kódování UTF-8.
-
Zadejte systémovou vlastnost runtime pro kódování souboru vlastností, jako v tomto příkladu:
java.util.PropertyResourceBundle.encoding=ISO-8859-1
blíže na Java 9 Internationalization |