Daftar properti dapat berisi daftar properti lain sebagai "nilai default"; jika kunci properti tidak dapat ditemukan dalam daftar properti asli, daftar properti kedua akan dicari.
Karena Properties mewarisi dari Hashtable, metode put dan putAll dapat diterapkan ke objek Properties. Namun, kedua metode ini tidak disarankan karena memungkinkan pemanggil untuk memasukkan item yang kunci atau nilainya bukan String. Sebagai gantinya, gunakan metode setProperty. Jika metode penyimpanan atau penyimpanan dipanggil pada objek Properti yang "tidak aman" (yaitu, berisi kunci atau nilai non-String), panggilan tersebut akan gagal. Demikian pula, jika metode propertyNames atau list dipanggil pada objek Properties yang "tidak aman" (yaitu, berisi kunci non-String), panggilan tersebut akan gagal.
File properti sering kali terlihat di aplikasi JAVA dan juga merupakan jenis file yang sangat penting. Ini digunakan untuk mengkonfigurasi beberapa informasi aplikasi, tetapi informasi ini umumnya merupakan data yang relatif kecil. Tidak perlu menggunakan file database untuk menyimpannya, tetapi menggunakan file teks umum untuk menyimpannya langsung melalui File , mungkin disimpan dan disimpan. Sangat tidak nyaman untuk dibaca, tetapi berbeda jika disimpan sebagai file Properti. File properti memiliki nilai kunci yang sesuai. Dalam paket JAVA, ada kelas khusus untuk mengoperasikan file properti . Kelas ini adalah kelas java.uitl.Properties. Karena kelas Properties adalah kelas koleksi, Properties akan membaca dan menulis properti dalam sebuah koleksi.
Catatan: Kode berikut tidak menangkap pengecualian yang diberikan. Saat menulis program, Anda harus memperhatikan untuk menangkap pengecualian.
Kelas Properties mewarisi kelas Hashtable dan mengadopsi metode penyimpanan yang sesuai dengan nilai kunci. Apa kemudahan saat menggunakan kelas Properties untuk mengelola file properti? Kelas Properties memiliki metode membaca dan menulis khusus untuk membaca dan menulis file atribut Properties. Anda tidak perlu khawatir tentang format membaca dan menulis. Anda hanya perlu menyediakan aliran membaca dan menulis untuk kelas Properties. Metode properti yang digunakan untuk membaca dan menulis file properti adalah:
Copy kode kodenya sebagai berikut:
//Metode untuk membaca aliran file atribut
public void load(InputStream inStream) memunculkan IOException {}
//Metode untuk menulis aliran file atribut
public void store(OutputStream out, String comments) memunculkan IOException {}
Pertama, mari kita lihat cara membaca properti dari file properti.
Asumsikan kita telah membuat file properti baru bernama prop.properties dengan konten berikut:
Copy kode kodenya sebagai berikut:
nama situs=abcjava
situsurl=www.abcjava.com
Langkah pertama yang perlu kita lakukan adalah membaca file ke dalam objek kelas Properties. Karena salah satu parameter load adalah InputStream, kita dapat menggunakan subkelas InputStream FileInputStream untuk membaca file properti ke dalam objek Properties gunakan konstruktor FileInputStream (nama string):
Copy kode kodenya sebagai berikut:
Properti prop = properti baru();//Objek koleksi properti
FileInputStream fis = new FileInputStream("prop.properties");//Properti aliran file
prop.load(fis);//Muat aliran file properti ke dalam objek Properties
Setelah mengetahui cara membaca file properti, ada hal lain yang sangat penting yang harus kita lakukan, yaitu memodifikasi dan menambahkan properti baru ke file properti. Di sini kita menggunakan metode public void store (OutputStream out, String comments). kumpulan properti Untuk aliran OutputStream, sama seperti aliran InputStream, subkelasnya FileOutputStream (nama string) juga digunakan di sini, jadi saya tidak akan membahas detailnya di sini.
Sebelum menyimpan kumpulan properti ke file, ada satu hal lagi yang harus kita lakukan adalah bagaimana memodifikasi dan menambahkan properti baru ke kumpulan properti. Salah satu metode yang digunakan di sini adalah setProperty(String key, String value), metode ini adalah untuk mengubah nilai kunci ketika kunci yang ditentukan ada dalam kumpulan atribut. Jika tidak ada, buat kunci baru. Ini juga disimpan melalui hubungan nilai kunci, tetapi perlu diperhatikan yang diwarisi oleh kelas Properties Sejak Hashtable, dimungkinkan juga untuk menyimpan menggunakan metode put dan putAll Hashtable, tetapi penggunaan kedua metode ini sangat tidak disarankan karena memungkinkan pemanggil untuk memasukkan item yang kunci atau nilainya bukan String. Sebagai gantinya, gunakan metode setProperty. Jika metode simpan atau simpan dipanggil pada objek Properti yang "berisiko" (yaitu, berisi kunci atau nilai non-String), panggilan akan gagal. Baiklah, mari kita lihat tata cara memodifikasi, menambah dan menyimpan atribut:
Copy kode kodenya sebagai berikut:
//Ubah nilai atribut nama situs
prop.setProperty("namasitus", "Kode Kotak");
//Tambahkan studio atribut baru
prop.setProperty("studio", "Boxcode Studio");
//Aliran keluaran file
FileOutputStream fos = new FileOutputStream("prop.properties");
//Simpan koleksi Properti ke dalam aliran
prop.store(fos, "Hak Cipta (c) Boxcode Studio");
fos.close();//Tutup aliran
Berikut ini adalah kode sumber dari keseluruhan program:
Copy kode kodenya sebagai berikut:
impor java.io.FileInputStream;
impor java.io.FileOutputStream;
impor java.util.Properti;
Editor Properti kelas publik {
public static void main(String[] args) melempar Pengecualian {
Properti prop = properti baru(); // Objek kumpulan properti
FileInputStream fis = new FileInputStream("prop.properties");//Properti aliran input file
prop.load(fis);//Muat aliran file properti ke dalam objek Properties
fis.close(); // Menutup aliran
// Dapatkan nilai atribut, nama situs telah ditentukan dalam file
System.out.println("Dapatkan nilai properti: sitename=" + prop.getProperty("sitename"));
// Dapatkan nilai atribut. Negara tidak ditentukan dalam file. Nilai default akan dikembalikan dalam program ini, tetapi file atribut tidak akan diubah.
System.out.println("Dapatkan nilai properti: negara=" + prop.getProperty("negara", "China"));
// Ubah nilai atribut nama situs
prop.setProperty("namasitus", "Kode Kotak");
//Tambahkan studio atribut baru
prop.setProperty("studio", "Boxcode Studio");
//Aliran keluaran file
FileOutputStream fos = new FileOutputStream("prop.properties");
// Simpan koleksi Properti ke aliran
prop.store(fos, "Hak Cipta (c) Boxcode Studio");
fos.close();//Tutup aliran
}
}