getResourceAsStream aracılığıyla bir kavanoz içinde belirli bir dosyanın nasıl yükleneceği ile ilgili bazı yanıtlar gördüm ve bunu yönetebilirim. Ancak, gerçekten spesifik bir şeye bakıyorum ve bu konuda forumda bir cevap bulamadım.Bir kavanoz içinden ResourceBundle ile yükleme
Ben bir kavanoz dosyası 2 özelliklerini içeren messages_en_US.properties ve messages_fr_FR.properties dosyaları bir conf dizini sahip olması: Burada
yapılandırmasıdır. Böyle kaynaklar yüklemek için klasik yolu dosyaları program sınıf yolunda tarafından başvurulan bir dizindeki bu gayet iyi çalışıyor, disk üzerinde olsaydıResourceBundle.getBundle("messages", java.util.Locale.getDefault());
kullanmaktır. Ancak, ResourceBundle.getBundle'un bir araya getirilmesinin nasıl kullanılacağını ve kaynakların bir kavanozda kullanılmasını nasıl yönetebileceğimi bilmiyorum. Gerçekten de, aracılığıyla bir köprüyü göremediğim için getResourceAsStream (ya da bu, tüm yerel dosya adını tam olarak belirtmek için yerel olarak yönetme anlamına gelir).
Herkes yardımcı olabilir mi?
Teşekkürler.
:
bu dosyayı okumak için kavanozda? Bir JAR içinde kalırsa, sınıf yoluna sahip olmanız ve normalde ResourceBundle.getBundle – rascio
ile aynı sorunu yüklememem gerektiği anlamına gelir, ben de bir jar dosyası içinde bir özellik kaynağım var ama bu jar dosyası Sınıf içi programlarda DEĞİL.PropertyResourceBundle için javadoc'u okudum ve bunu inputstream ile yapabileceğimi biliyorum, ancak inputstream IO dosyasını her seferinde okuyacaktır ve varsayılan ResourceBundle önbelleğe alma işlemini kaybeder. Paketi, sınıf yolunun dışındaki bir kaynaktan almak için ResourceBundle sınıfını yönetmenin bir yolu var mı? –
Ayrıca ResourceBundle.Control, özelleştirme için uygulanabilir, ancak özellik dosyalarını sınıf yoluna yerleştirmenin yollarını bulmak için daha iyi bir overkill gibi görünüyor. –