"Hôm nay chúng ta đang khám phá một chủ đề mới và thú vị khác: tài sản. "

"Trong Java, thông lệ là làm cho các chương trình trở nên linh hoạt và dễ dàng tùy chỉnh, tức là có thể cấu hình dễ dàng."

"Ví dụ: mỗi giờ một lần, chương trình của bạn sao chép các tệp từ một thư mục nhất định, nén chúng và gửi chúng cho bạn qua email. Để thực hiện việc này, chương trình cần biết thư mục nơi các tệp sẽ được lấy từ đó và địa chỉ email nơi chúng sẽ được gửi. Dữ liệu như vậy thường không được lưu trữ trong mã ứng dụng, mà trong một tệp thuộc tính riêng biệt ."

Dữ liệu trong tệp này được lưu trữ dưới dạng các cặp khóa-giá trị, được phân tách bằng dấu bằng.

Ví dụ
data.properties file
directory = c:/text/downloads
email = zapp@codegym.cc

"Bên trái của dấu hiệu là tên (khóa), bên phải là giá trị."

"Vì vậy, đây là một loại đại diện văn bản của HashMap?"

"Nói chung là có."

"Để thuận tiện khi làm việc với các tệp như vậy, Java có một lớp Thuộc tính đặc biệt. Lớp Thuộc tính kế thừa Hashtable<Object,Object>. Nó thậm chí có thể được coi là một Hashtable có thể tự tải từ một tệp."

"Đây là phương pháp của nó:"

Phương pháp Sự miêu tả
void load(Reader reader) Tải các thuộc tính từ tệp được đại diện bởi đối tượng Reader
void load(InputStream inStream) Tải các thuộc tính từ tệp được đại diện bởi một đối tượng InputStream
void loadFromXML(InputStream in) Tải thuộc tính từ tệp XML
Object get(Object key) Trả về giá trị cho khóa được chỉ định. Phương pháp này được kế thừa từ Hashtable
String getProperty(String key) Trả về giá trị thuộc tính (chuỗi) theo khóa.
String getProperty(String key, String defaultValue) Trả về giá trị thuộc tính theo khóa hoặc defaultValue nếu không có khóa nào như vậy.
Set<String> stringPropertyNames() Trả về danh sách tất cả các khóa

"Nói cách khác, bạn thực sự chỉ cần thực hiện hai thao tác— tải dữ liệu từ một tệp nào đó vào đối tượng Thuộc tính rồi lấy các thuộc tính này bằng phương thức getProperty (). Và đừng quên rằng bạn có thể sử dụng đối tượng Thuộc tính như một HashMap ."

"Đây là một ví dụ khác:"

Mã số
// 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"));

"À. Vì vậy, chúng ta tạo một đối tượng Thuộc tính, sau đó chuyển một tệp vào đối tượng đó. Đến phương thức tải. Và sau đó chúng ta chỉ cần gọi getProperty. Đúng không?"

"Chuẩn rồi."

"Và bạn cũng nói rằng nó có thể được sử dụng như một HashMap? Ý bạn là gì?"

"Lớp Thuộc tính kế thừa Hashtable, giống như HashMap, nhưng tất cả các phương thức của nó đều được đồng bộ hóa. Bạn chỉ cần hiển thị tất cả các giá trị từ tệp thuộc tính trên màn hình như sau:"

Mã số
// 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));
}

"À. Mọi thứ dường như đã đâu vào đấy. Cảm ơn Rishi. Tôi sẽ sử dụng thứ tuyệt vời này."