2012-02-21 29 views
6
logpath = LoggerUtils.getProperties().getProperty("log.path"); 
System.out.println("logpath: " + logpath); 

Lợi nhuận mã trên:Java Properties, nhận được đường dẫn tập tin

logpath: C:UsersMauriceDesktopLogs 

Trong tập tin thuộc tính là:

log.path C:\Users\Maurice\Desktop\Logs 

Làm thế nào để duy trì các thiết bị tách tập tin? Tôi cũng muốn nó hoạt động trên Linux và không chỉ Windows.

Trả lời

14

Trên thực tế, bạn cần phải đặt này trong tập tin bất động sản:

log.path C:\\Users\\Maurice\\Desktop\\Logs 

Xem này:

chính xác hơn load phương pháp:

Cuộn xuống một chút và bạn sẽ thấy điều này trong số những thứ khác:

Phương pháp không đối xử với một nhân vật xuyệc ngược, \, trước khi một nhân vật thoát không hợp lệ như một lỗi; dấu gạch chéo ngược được thả xuống âm thầm. Ví dụ, trong một chuỗi Java, chuỗi "\ z" sẽ gây ra lỗi thời gian biên dịch. Ngược lại, phương pháp này âm thầm giảm dấu gạch chéo ngược. Do đó, phương thức này xử lý chuỗi ký tự hai "\ b" tương đương với ký tự đơn 'b'.

Dấu gạch chéo ngược \ là ký tự thoát được thả âm thầm theo cách khác.

+0

Cảm ơn bạn. Liệu nó có cần phải chạy thoát cho Linux không? – Maurice

+0

Có, nhưng tôi khuyên bạn nên sử dụng dấu gạch chéo thường xuyên ('/') mọi lúc - điều này cũng sẽ hoạt động trên Windows: 'log.path C:/Users/Maurice/Desktop/Logs ' –

+0

Ah ok rất nhiều. – Maurice

4

Trong một tập tin bất động sản, bạn cần phải hoặc sử dụng dấu gạch chéo:

C:/Users/Maurice/Desktop/Logs 

Hoặc, thoát backslashes:

C:\\Users\\Maurice\\Desktop\\Logs 
2

Java properties file format dictates rằng nhân vật xuyệc ngược ("\") thoát nhân vật theo dõi nó, để có được đường dẫn cửa sổ theo nghĩa đen, bạn phải có:

logpath: C:\\Users\\Maurice\\Desktop\\Logs 

Tuy nhiên, Java sẽ chuyển đổi ký tự phân cách đường dẫn cho bạn tự động cho phù hợp với nền tảng runtime, vì vậy bạn có thể tránh được phiền toái này bằng cách luôn sử dụng dấu gạch chéo:

logpath: C:/Users/Maurice/Desktop/Logs 
0

Bạn có thể lưu trữ các Properties nộp đầu tiên, sau đó tải lại lần nữa để sử dụng. Properties sẽ chăm sóc thoát/unescaping bất cứ điều gì.

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