"วันนี้เรากำลังสำรวจหัวข้อใหม่และน่าสนใจ: คุณสมบัติ "

"ใน Java เป็นเรื่องปกติที่จะทำให้โปรแกรมมีความยืดหยุ่นและปรับแต่งได้ง่าย เช่น กำหนดค่าได้ง่าย"

"ตัวอย่างเช่น โปรแกรมของคุณจะคัดลอกไฟล์จากไดเร็กทอรีหนึ่งๆ หนึ่งชั่วโมง ซิปไฟล์ และส่งให้คุณทางอีเมล ในการทำเช่นนี้ โปรแกรมจำเป็นต้องทราบไดเร็กทอรีที่ไฟล์จะถูกดึงมา และที่อยู่อีเมล ควรส่งไปที่ใด โดยปกติแล้ว ข้อมูลดังกล่าวจะไม่ถูกจัดเก็บในรหัสแอปพลิเคชัน แต่อยู่ใน ไฟล์ คุณสมบัติ แยกต่างหาก "

ข้อมูลในไฟล์นี้จัดเก็บเป็นคู่คีย์-ค่า โดยคั่นด้วยเครื่องหมายเท่ากับ

ตัวอย่าง
data.properties file
directory = c:/text/downloads
email = zapp@codegym.cc

"ด้านซ้ายของเครื่องหมายคือชื่อ (คีย์) ทางด้านขวาคือค่า"

"นี่คือการแสดงข้อความแบบหนึ่งของ HashMap"

"โดยทั่วไปใช่"

"เพื่อความสะดวกในการทำงานกับไฟล์ดังกล่าว Java มีคลาส Properties พิเศษ คลาส Properties สืบทอด Hashtable<Object,Object> มันสามารถคิดได้ว่าเป็น Hashtable ที่สามารถโหลดตัวเองจากไฟล์ได้"

"นี่คือวิธีการ:"

วิธี คำอธิบาย
void load(Reader reader) โหลดคุณสมบัติจากไฟล์ที่แสดงโดยออบเจกต์ Reader
void load(InputStream inStream) โหลดคุณสมบัติจากไฟล์ที่แสดงโดยวัตถุ InputStream
void loadFromXML(InputStream in) โหลดคุณสมบัติจากไฟล์ XML
Object get(Object key) ส่งกลับค่าสำหรับคีย์ที่ระบุ วิธีนี้สืบทอดมาจาก Hashtable
String getProperty(String key) ส่งกลับค่าคุณสมบัติ (สตริง) ตามคีย์
String getProperty(String key, String defaultValue) ส่งกลับค่าคุณสมบัติตามคีย์หรือค่าดีฟอลต์หากไม่มีคีย์ดังกล่าว
Set<String> stringPropertyNames() ส่งคืนรายการคีย์ทั้งหมด

"กล่าวอีกนัยหนึ่ง คุณจำเป็นต้องดำเนินการเพียงสองการดำเนินการเท่านั้น—โหลดข้อมูลจากบางไฟล์ลงในวัตถุPropertiesแล้วรับคุณสมบัติเหล่านี้โดยใช้ เมธอด getProperty () และอย่าลืมว่าคุณสามารถใช้วัตถุPropertiesเช่น HashMap " _

"นี่เป็นอีกตัวอย่างหนึ่ง:"

รหัส
// The file that stores our project's properties
File file = new File("c:/data.properties");

// Create a Properties object and load data from the file into it.
Properties properties = new Properties();
properties.load(new FileReader(file));

// Get property values from the Properties object
String email = properties.getProperty("email");
String directory = properties.getProperty("directory");

// Get a numeric value from the Properties object
int maxFileSize = Integer.parseInt(properties.getProperty("max.size", "10000"));

"อา ดังนั้นเราจึงสร้างวัตถุคุณสมบัติ แล้วส่งไฟล์ไปยังวิธีการโหลด จากนั้นเราก็เรียก getProperty ใช่ไหม"

"ใช่."

“แล้วคุณยังบอกว่ามันสามารถใช้เป็น HashMap ได้ด้วยเหรอ หมายความว่ายังไง”

"คลาส Properties สืบทอด Hashtable ซึ่งเหมือนกับ HashMap แต่เมธอดทั้งหมดจะถูกซิงโครไนซ์ คุณสามารถแสดงค่าทั้งหมดจากไฟล์คุณสมบัติบนหน้าจอได้ดังนี้:"

รหัส
// Get the file with the properties
File file = new File("c:/data.properties");

// Create a Properties object and load data from the file into it.
Properties properties = new Properties();
properties.load(new FileReader(file));

// Run through all the keys and display their values on the console
for (String key : properties.stringPropertyNames())
{
 System.out.println(properties.get(key));
}

"อา ทุกอย่างดูเหมือนจะเข้าที่ ขอบคุณ Rishi ฉันจะใช้สิ่งที่ยอดเยี่ยมนี้"