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

"ใน 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 ฉันจะใช้สิ่งที่ยอดเยี่ยมนี้"
GO TO FULL VERSION