2012-04-20 19 views
8

Nói rằng tôi có những điều sauJava Bạn sử dụng API tùy chọn như thế nào? Các biến này lưu trữ ở đâu?

Preferences prefs = Preferences.userRoot().node(this.getClass().getName()); 

String ID1 = "Test1"; 

System.out.println(prefs.getBoolean(ID1, true)); 

prefs.putBoolean(ID1, false); 

//prefs.remove(ID1); 
  1. là biến dai dẳng lần sau này tôi thực hiện chương trình của tôi?
  2. Các biến này lưu trữ ở đâu?
  3. Cách thích hợp để sử dụng điều này là gì?
  4. Cách tiếp cận có tốt hơn việc sử dụng các tệp thuộc tính không?
+3

Hoặc từ một phiên bản không phải là EOLd năm trước: http://docs.oracle.com/javase/6/docs/api/java/util/prefs/Preferences.html –

Trả lời

12
  1. Có, giá trị này liên tục nhưng chỉ cho người dùng. Nó sẽ không có ở đó cho những người dùng khác.
  2. Đây là hệ điều hành cụ thể. Đối với Windows, nó sử dụng registry, cho Linux tôi tin rằng nó sử dụng các tập tin ẩn trong root của người dùng, mặc dù tôi không chắc chắn 100%.
  3. Bạn có một ví dụ khá hay trong câu hỏi của mình.
  4. Đó là khác nhau, không phải tốt hơn. Tùy chọn là một cách để lưu trữ các cài đặt một cách minh bạch cho một ứng dụng. Các cài đặt này có thể được cập nhật trong thời gian chạy bởi người dùng (ví dụ: bạn có thể sử dụng prefs để lưu trữ cài đặt cụ thể của người dùng). Tùy chọn không có nghĩa là có thể chỉnh sửa bên ngoài ứng dụng. Các tệp thuộc tính có xu hướng lưu trữ cài đặt cứng cụ thể cho một ứng dụng. Các cài đặt này giống nhau cho mỗi người dùng và có xu hướng không thay đổi thường xuyên. Các tệp thuộc tính là các tệp văn bản và có xu hướng đi kèm với một ứng dụng khi triển khai. Bạn có thể chỉnh sửa chúng dễ dàng bằng cách sử dụng trình soạn thảo văn bản. Nó là khá hiếm cho một ứng dụng để cập nhật các tập tin thuộc tính.
+0

Lưu ý rằng chúng tôi nói chuyện với người dùng hệ điều hành ở đây ... vì vậy một ứng dụng chạy dưới người dùng "tomcat" máy chủ cùng sở thích 'người dùng' cho tất cả người dùng web của ứng dụng đó. –

+2

Đối với # 1, giá trị này là dành cho người dùng vì '.userRoot()'. Để lưu nó cho tất cả người dùng, sử dụng '.systemRoot()' – Ron

Các vấn đề liên quan