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!

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

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

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

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]

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

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.

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

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


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

Dreamweaver CS6
Alat pembangunan web visual

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod