2011-09-27 14 views
7

Có thể tạo tệp thuộc tính mới và thêm khóa và giá trị trong thời gian chạy không? Tôi muốn thêm các khóa mới vào tệp thuộc tính tùy thuộc vào đầu vào của người dùng trong khi cài đặt ứng dụng của tôi. Tôi đã kiểm tra lớp Java Properties nhưng dường như nó có thể đặt giá trị cho các khóa hiện tại nhưng không thể thêm các khóa mới vào tệp thuộc tính.Java - Thuộc tính: Thêm khóa mới vào tệp thuộc tính trong thời gian chạy?

+2

Cũng xem [một lớp học tốt hơn để cập nhật các file tài sản] (http: // stackoverflow. com/questions/565932/a-better-class-to-update-property-files) –

Trả lời

13

Bạn có thể thêm thuộc tính mới chỉ bằng cách gọi setProperty bằng khóa hiện không tồn tại. Điều đó sẽ chỉ làm điều đó trong bộ nhớ mặc dù - bạn sẽ phải gọi store một lần nữa để phản ánh những thay đổi trở lại vào một tập tin:

Properties prop = new Properties(); 
prop.load(...); // FileInputStream or whatever 

prop.setProperty("newKey", "newValue"); 
prop.store(...); // FileOutputStream or whatever 
+0

Nó không phản ánh ngay cả khi tôi lưu trữ bất động sản thay đổi, bất kỳ ý tưởng nào? –

+0

@PremanandK: Tôi e là tôi không hiểu bình luận của bạn chút nào. Có lẽ bạn nên đặt một câu hỏi mới với [mcve]. –

+0

Tôi đã lưu các thay đổi về tài sản của mình là "prop.store (...);", nhưng nó không phản ánh. I E. tôi không thấy các thay đổi của mình trong tệp thuộc tính của tôi. Cảm ơn bạn đã trả lời @Jon Skeet –