Rumah Java javaTutorial Bagaimana untuk menggunakan kelas Properties di Java?

Bagaimana untuk menggunakan kelas Properties di Java?

Oct 31, 2024 am 08:35 AM

¿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();
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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");
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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();
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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");
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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
Salin selepas log masuk
Salin selepas log masuk

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
Salin selepas log masuk
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<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>
Salin selepas log masuk

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

Properties props = new Properties();
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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");
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
var API_URL = props.getProperty("API_URL");
System.out.println(API_URL);

// Output
null
Salin selepas log masuk
Salin selepas log masuk

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
Salin selepas log masuk
Salin selepas log masuk

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 Laman Web ini
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

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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1674
14
Tutorial PHP
1278
29
Tutorial C#
1257
24
Adakah perisian keselamatan syarikat menyebabkan aplikasi gagal dijalankan? Bagaimana cara menyelesaikan masalah dan menyelesaikannya? Adakah perisian keselamatan syarikat menyebabkan aplikasi gagal dijalankan? Bagaimana cara menyelesaikan masalah dan menyelesaikannya? Apr 19, 2025 pm 04:51 PM

Penyelesaian masalah dan penyelesaian kepada perisian keselamatan syarikat yang menyebabkan beberapa aplikasi tidak berfungsi dengan baik. Banyak syarikat akan menggunakan perisian keselamatan untuk memastikan keselamatan rangkaian dalaman. …

Bagaimanakah saya menukar nama kepada nombor untuk melaksanakan penyortiran dan mengekalkan konsistensi dalam kumpulan? Bagaimanakah saya menukar nama kepada nombor untuk melaksanakan penyortiran dan mengekalkan konsistensi dalam kumpulan? Apr 19, 2025 pm 11:30 PM

Penyelesaian untuk menukar nama kepada nombor untuk melaksanakan penyortiran dalam banyak senario aplikasi, pengguna mungkin perlu menyusun kumpulan, terutama dalam satu ...

Bagaimana untuk memudahkan isu pemetaan medan dalam dok sistem menggunakan mapstruct? Bagaimana untuk memudahkan isu pemetaan medan dalam dok sistem menggunakan mapstruct? Apr 19, 2025 pm 06:21 PM

Pemprosesan pemetaan medan dalam dok sistem sering menemui masalah yang sukar ketika melaksanakan sistem dok: bagaimana untuk memetakan medan antara muka sistem dengan berkesan ...

Bagaimana dengan elegan mendapatkan nama pemboleh ubah kelas entiti untuk membina keadaan pertanyaan pangkalan data? Bagaimana dengan elegan mendapatkan nama pemboleh ubah kelas entiti untuk membina keadaan pertanyaan pangkalan data? Apr 19, 2025 pm 11:42 PM

Apabila menggunakan Mybatis-Plus atau Rangka Kerja ORM yang lain untuk operasi pangkalan data, sering diperlukan untuk membina syarat pertanyaan berdasarkan nama atribut kelas entiti. Sekiranya anda secara manual setiap kali ...

Bagaimanakah Idea IntelliJ mengenal pasti nombor port projek boot musim bunga tanpa mengeluarkan log? Bagaimanakah Idea IntelliJ mengenal pasti nombor port projek boot musim bunga tanpa mengeluarkan log? Apr 19, 2025 pm 11:45 PM

Mula musim bunga menggunakan versi IntelliJideaultimate ...

Bagaimana cara menukar objek Java dengan selamat ke array? Bagaimana cara menukar objek Java dengan selamat ke array? Apr 19, 2025 pm 11:33 PM

Penukaran objek dan tatasusunan Java: Perbincangan mendalam tentang risiko dan kaedah penukaran jenis cast yang betul Banyak pemula Java akan menemui penukaran objek ke dalam array ...

Platform e-dagang SKU dan Reka Bentuk Pangkalan Data SPU: Bagaimana untuk mengambil kira kedua-dua atribut yang ditakrifkan oleh pengguna dan produk yang tidak berkesudahan? Platform e-dagang SKU dan Reka Bentuk Pangkalan Data SPU: Bagaimana untuk mengambil kira kedua-dua atribut yang ditakrifkan oleh pengguna dan produk yang tidak berkesudahan? Apr 19, 2025 pm 11:27 PM

Penjelasan terperinci mengenai reka bentuk jadual SKU dan SPU di platform e-dagang Artikel ini akan membincangkan isu reka bentuk pangkalan data SKU dan SPU dalam platform e-dagang, terutamanya bagaimana menangani jualan yang ditentukan pengguna ...

Bagaimana menggunakan penyelesaian cache Redis untuk merealisasikan keperluan senarai kedudukan produk dengan cekap? Bagaimana menggunakan penyelesaian cache Redis untuk merealisasikan keperluan senarai kedudukan produk dengan cekap? Apr 19, 2025 pm 11:36 PM

Bagaimanakah penyelesaian caching Redis menyedari keperluan senarai kedudukan produk? Semasa proses pembangunan, kita sering perlu menangani keperluan kedudukan, seperti memaparkan ...

See all articles