2 Ağustos 2017 Çarşamba

Properties Sınıfı

Giriş
Properties dosyasında ayraç olarak :, = veya boşluk karakteri kullanılabiliyor. Açıklaması şöyle
The key contains all of the characters in the line starting with the first non-white space character and up to, but not including, the first unescaped '=', ':', or white space character other than a line terminator. All of these key termination characters may be included in the key by escaping them with a preceding backslash character;
...
As an example, each of the following three lines specifies the key "Truth" and the associated element value "Beauty":
Truth = Beauty
Truth:Beauty
Truth :Beauty
Ben ayraç olarak = karakteri kullanılmasını tercih ediyorum. Şöyle yapabiliriz.
CarModel=Prius
CarMake=Toyota
Option1=Transmission
OptionValue1a=Manual
OptionValue1b=Automatic
Option2=Brakes
OptionValue2a=Regular
OptionValue2b=ABS
Properties Java'nın en başından beri var. Map ve HashMap sınıfları geliştirilmeden önce de vardı. Bu yüzden eski HashTable sınıfından kalıtıyor.

constructor
Şöyle yaparız.
Properties props = new Properties ();
getProperty metodu
Şöyle yaparız. Eğer key yoksa null döner.
String carModel = props.getProperty("CarModel");
if(!carModel.equals (null)){...}
load metodu
Açıklaması şöyle
The specified stream remains open after this method returns.
Dolayısıylsa şu kod stream'i kapatmadığı için yanlış.
Properties props = new Properties();
props.load(new FileInputStream(...));
Şöyle yaparız. İş bitince FileInputStream'in kapatılıyor
FileInputStream fis = new FileInputStream(filename);
props.load (fis);
Java 7 ile şöyle yaparız.
try (FileInputStream fis = new FileInputStream("C:/my.ini")) {
  props.load (fis);
}
setProperty metodu
Şöyle yaparız.
String property = ...; String value = ...;
props.setProperty (property, value);
Eğer value değeri içinde ayraç varsa otomatik escape edililir.
properties.setProperty("foo", "bar:baz");
Çıktı olarak şunu alırız.
foo=bar\:baz
store metodu - OutputStream
Şöyle yaparız. İkinci parametre olan comments null verilebilir.
FileOutputStream out = ...;
props.store (out, null);
store metodu - Writer
Şöyle yaparız.
Path path = Paths.get("x.properties");
try (
  // Requires Java 8!
  final Writer writer = Files.newBufferedWriter (path);
  ) {
    properties.store (writer, null);
}


Hiç yorum yok:

Yorum Gönder