5 Şubat 2019 Salı

ResourceBundle Sınıfı - Property Dosyası Okur

Giriş
Açıklaması şöyle. Java 9'dan sonra UTF-8 olmalı. 
When properties files are used as ResourceBundles, the encoding required differs between versions of Java. Up to and including Java 8, these files are required to use ISO-8859-1 encoding.

Starting with Java 9, the preferred encoding is UTF-8 for property resource bundles. It might work with ISO-8859-1, but as you can see in the Internationalization Enhancements in JDK 9 documentation, you should consider converting your property resource bundles into UTF-8 encoding. 
Eski açıklaması şöyle.. Bundle dosyası ISO-8859-1 kullanılarak oluşturulmalı. 
Constructing a PropertyResourceBundle instance from an InputStream requires that the input stream be encoded in ISO-8859-1. In that case, characters that cannot be represented in ISO-8859-1 encoding must be represented by Unicode Escapes as defined in section 3.3 of The Java™ Language Specification whereas the other constructor which takes a Reader does not have that limitation.


getBundle metodu - resources Dizini Altındaki properties dosyasını okur
Dosyanın uzantısı olan ".properties" kodda belirtilmez.

Örnek
Mesajı dosyası resources\config\config.properties ise bu metoda "config/config" geçilir. Yani dosya uzantısı kodda kullanılmaz.

Örnek
Mesajı dosyası resources\com\a\b\c\messages.properties ise bu metoda "com.a.b.c.messages" geçilir.

Örnek
Şöyle yaparız. Daha sonra getString() vs gibi metodlarla dosya içeriğine erişilebilir.
ResourceBundle bundle = ResourceBundle.getBundle("...");
getBundle metodu - string + Locale
String olarak class.getName() verirsek (tüm paket yolu + sınıf ismi) ve sınıfın paketi com.bar.foo.MyFoo ise ve locale İngilizce ise src/main/java/resources/com/bar/foo dizini altında MyFoo_en.properties dosyasını yükler. Locale Türkçe ise MyFoo_tr.properties dosyasını yükler.

getString metodu
Şöyle yaparız.
String str = bundle.getString("content");


Hiç yorum yok:

Yorum Gönder