cari
RumahJavajavaTutorialBagaimana untuk menggunakan kelas Properties di Java?

¿Cómo usar la clase Properties en Java?

pengenalan

Apabila kami bekerja pada aplikasi Java, adalah perkara biasa bahawa kami perlu bekerja dengan beberapa konfigurasi, contohnya, URL pangkalan data, port pelayan, antara lain. Daripada mengekodkan tetapan ini terus ke dalam kod, kami berminat untuk mendapatkannya dari suatu tempat di luar kod, seperti fail sifat. Atau malah boleh menyimpan konfigurasi pada masa jalan untuk membacanya kemudian.

Dalam mana-mana kes ini, kami boleh membangunkan penyelesaian kami sendiri untuk senario tertentu, contohnya, mencipta fail teks dan dalam baris pertama menyimpan URL pangkalan data, di baris kedua port pelayan, dsb. Tetapi ini boleh membosankan dan terdedah kepada ralat, jadi penyelesaian yang lebih teguh dan berskala diperlukan. Untuk jenis kes ini, Java memberikan kami penyelesaian yang sangat mudah dan cekap untuk digunakan, kelas Properties.

Apakah kelas Properties?

Properties ialah kelas yang terdapat dalam pakej java.util yang membolehkan kami menyimpan konfigurasi buat sementara waktu dalam ingatan dan secara berterusan dalam fail sifat, jadi kami kemudian boleh membacanya dan menggunakannya dalam aplikasi kami. Dengan mencipta tika kelas Properties, anda mendapat objek yang berkelakuan seperti kamus, di mana setiap konfigurasi disimpan sebagai pasangan nilai kunci.

Menggunakan kelas Properties

Untuk bermula, tika kelas Properties mesti dibuat.

Properties props = new Properties();

Dengan mewarisi daripada kelas HashTable (yang seterusnya mewarisi daripada Kamus), dalam kelas Properties kita dapat melihat bahawa ia mempunyai kaedah jenis Objek, sedangkan nilai sebenarnya dijangkakan sebagai rentetan aksara atau String, dan bukan , tidak perlu menghantar String setiap kali anda bekerja dengan nilai. Dengan cara ini, walaupun terdapat kaedah lazim peta dalam contoh, dalam kebanyakan kes, ia tidak perlu digunakan. Sebagai contoh, daripada menggunakan get(kunci objek) anda boleh menggunakan getProperty(kunci rentetan).

Tentukan sifat

Untuk menentukan harta, kaedah setProperty(Kunci rentetan, nilai rentetan) digunakan, seperti yang ditunjukkan oleh namanya, kaedah ini menerima dua parameter, kunci (bagaimana anda ingin memanggil harta itu) dan nilai (nilai harta benda ), memandangkan kedua-dua parameter sentiasa dijangka daripada jenis String.

Properties props = new Properties();
props.setProperty("DB_HOST", "localhost");
props.setProperty("DB_PORT", "3306");
props.setProperty("DB_USER", "root");
props.setProperty("DB_PASS", "p4ssw0rd");

Dapatkan hartanah

Untuk mendapatkan harta anda boleh menggunakan kaedah getProperty(String key), yang menerima sebagai parameter kunci harta yang anda ingin perolehi Jika harta itu tidak wujud, null akan dikembalikan.

Properties props = new Properties();

Untuk mengelak daripada mendapatkan null sekiranya sifat tidak wujud, anda boleh menggunakan kaedah getProperty(String key, String defaultValue), yang menerima nilai lalai sebagai parameter kedua.

Properties props = new Properties();
props.setProperty("DB_HOST", "localhost");
props.setProperty("DB_PORT", "3306");
props.setProperty("DB_USER", "root");
props.setProperty("DB_PASS", "p4ssw0rd");

Lelaran ke atas sifat

Memandangkan ia adalah objek jenis peta (walaupun tidak disyorkan untuk menggunakan kaedah HashTable), ia mempunyai kaedah entrySet(), tetapi seperti yang anda lihat ia adalah jenis Objek, alternatif untuk mengulangi semua sifat ialah untuk menggunakan kaedah stringPropertyNames(), yang mengembalikan satu set rentetan aksara dengan semua kunci sifat (nilai yang dikembalikan tidak dalam susunan tertentu).

var API_URL = props.getProperty("API_URL");
System.out.println(API_URL);

// Output
null

Cara yang lebih pantas untuk memaparkan semua sifat adalah dengan menggunakan kaedah senarai(PrintStream keluar), yang mencetak semua sifat kepada aliran keluaran yang diluluskan sebagai parameter, contohnya System.out.

var API_URL = props.getProperty("API_URL", "http://api.example.com");
System.out.println(API_URL);

// Output
http://api.example.com

Simpan sifat ke fail

Properties menyediakan kaedah store() dan storeToXML() supaya sifat boleh disimpan dalam format properties (key=value) dan dalam format XML (ini boleh berguna jika sifat akan digunakan dalam persekitaran yang berbeza) masing-masing. Jangan gunakan kaedah save() kerana ia sudah usang dan penggunaannya tidak disyorkan, kerana ia tidak membuang pengecualian sekiranya ralat berlaku.

Sebelum menyimpan sifat ke fail, kita boleh melakukan perkara berikut untuk mengesahkan dengan konsol apa yang sebenarnya disimpan menggunakan kaedah store() dan System.out, adalah penting untuk mengawal pengecualian yang dilemparkan.

for (String prop : props.stringPropertyNames()) {
    System.out.println(prop + " = " + props.getProperty(prop));
}

// Output
DB_PORT = 3306
DB_PASS = p4ssw0rd
DB_USER = root
DB_HOST = localhost

Menganalisis keputusan, anda boleh melihat bahawa dalam baris pertama ulasan yang diluluskan sebagai hujah kedua disimpan (tidak kira jika ia adalah rentetan kosong, jika ia nol ia tidak dicetak), dalam baris kedua ia disimpan tarikh dan masa di mana sifat disimpan, dan bermula dari baris ketiga sifat disimpan dalam format key=value.

Jika kaedah storeToXML() digunakan, fail dengan kandungan berikut akan diperoleh:

props.list(System.out);

// Output
-- listing properties --
DB_PORT=3306
DB_PASS=p4ssw0rd
DB_USER=root
DB_HOST=localhost

Untuk menyimpan sifat dalam fail yang dipanggil db.properties anda boleh melakukan perkara berikut:

props.store(System.out, "Database Configuration");

// Output
#Database Configuration
#Thu Oct 10 11:06:04 CST 2024
DB_HOST=localhost
DB_PASS=p4ssw0rd
DB_PORT=3306
DB_USER=root

Setelah dilaksanakan, dan jika tiada pengecualian dilemparkan, anda akan melihat bahawa fail dengan nama db.properties telah dibuat dalam direktori tempat program itu dilaksanakan, dengan kandungan berikut:

props.storeToXML(System.out, "Database Configuration");

// Output
<?xml version="1.0" encoding="UTF-8"?>

<properties>
<comment>Database Configuration</comment>
<entry key="DB_PORT">3306</entry>
<entry key="DB_PASS">p4ssw0rd</entry>
<entry key="DB_USER">root</entry>
<entry key="DB_HOST">localhost</entry>
</properties>

Untuk menyimpan sifat dalam format XML, cuma tukar kaedah store() kepada storeToXML().

Properties props = new Properties();

Muatkan sifat daripada fail

Andaikan sesetengah harta telah diubah suai atau yang baharu ditambah dalam fail db.properties atau db.properties.xml, untuk memuatkan sifat daripada salah satu daripada dua fail, sama ada dalam properties atau XML, kaedah load() dan loadFromXML() boleh digunakan masing-masing. Adalah penting untuk mengawal pengecualian yang dilemparkan sekiranya fail tidak wujud atau tidak boleh dibaca.

Properties props = new Properties();
props.setProperty("DB_HOST", "localhost");
props.setProperty("DB_PORT", "3306");
props.setProperty("DB_USER", "root");
props.setProperty("DB_PASS", "p4ssw0rd");
var API_URL = props.getProperty("API_URL");
System.out.println(API_URL);

// Output
null

Setelah sifat dimuatkan, ia boleh dipaparkan dalam konsol untuk mengesahkan bahawa ia telah dimuatkan dengan betul.

var API_URL = props.getProperty("API_URL", "http://api.example.com");
System.out.println(API_URL);

// Output
http://api.example.com

Kesimpulan

Seperti yang telah kita lihat, kelas Properties membolehkan kami bekerja dengan fail harta atau konfigurasi dengan cara yang cekap dan mudah, untuk menyimpan dan membaca sifat, yang menarik untuk diketahui dan digunakan dalam aplikasi Java kami.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan kelas Properties di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?Mar 17, 2025 pm 05:46 PM

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Bagaimanakah saya membuat dan menggunakan perpustakaan Java Custom (fail JAR) dengan pengurusan versi dan pergantungan yang betul?Bagaimanakah saya membuat dan menggunakan perpustakaan Java Custom (fail JAR) dengan pengurusan versi dan pergantungan yang betul?Mar 17, 2025 pm 05:45 PM

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu?Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu?Mar 17, 2025 pm 05:44 PM

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas?Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas?Mar 17, 2025 pm 05:43 PM

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?Mar 17, 2025 pm 05:35 PM

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai

Bagaimanakah saya boleh menggunakan RMI Java (Penyerahan Kaedah Jauh) untuk pengkomputeran yang diedarkan?Bagaimanakah saya boleh menggunakan RMI Java (Penyerahan Kaedah Jauh) untuk pengkomputeran yang diedarkan?Mar 11, 2025 pm 05:53 PM

Artikel ini menerangkan Java's Remote Method Invocation (RMI) untuk membina aplikasi yang diedarkan. IT memperincikan definisi antara muka, pelaksanaan, persediaan pendaftaran, dan penyerahan klien, menangani cabaran seperti isu rangkaian dan keselamatan.

Bagaimana saya menggunakan API Soket Java untuk komunikasi rangkaian?Bagaimana saya menggunakan API Soket Java untuk komunikasi rangkaian?Mar 11, 2025 pm 05:53 PM

Artikel ini memperincikan API soket Java untuk komunikasi rangkaian, yang meliputi persediaan pelanggan-pelayan, pengendalian data, dan pertimbangan penting seperti pengurusan sumber, pengendalian ralat, dan keselamatan. Ia juga meneroka teknik pengoptimuman prestasi, i

Bagaimana saya boleh membuat protokol rangkaian tersuai di java?Bagaimana saya boleh membuat protokol rangkaian tersuai di java?Mar 11, 2025 pm 05:52 PM

Butiran artikel ini mewujudkan protokol rangkaian Java tersuai. Ia meliputi definisi protokol (struktur data, pembingkaian, pengendalian ralat, versi), pelaksanaan (menggunakan soket), serialisasi data, dan amalan terbaik (kecekapan, keselamatan, mainta

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod