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

Вышеприведенные возвращает код:Java Properties, получая путь к файлу

logpath: C:UsersMauriceDesktopLogs 

В файле свойств:

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

Как сохранить файл разделители? Я хочу, чтобы это работало и с Linux, а не только с Windows.

ответ

14

На самом деле, вы должны сделать это в файле свойств:

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

Смотреть это:

точнее load метод:

Прокрутка вниз немного, и вы увидите это, среди прочего:

Метод не лечить символ обратных косых черт, \, перед недействительным экранирующим символом в виде не ошибка; обратная косая черта тихо отбрасывается. Например, в строке Java последовательность «\ z» приведет к ошибке времени компиляции. Напротив, этот метод беззвучно удаляет обратную косую черту. Поэтому этот метод рассматривает две символьные последовательности «\ b» как эквивалентные одному символу «b».

Обратная косая черта \ - символ побега, который молча опускается в противном случае.

+0

спасибо. Нужно ли бежать также и для Linux? – Maurice

+0

Да, но я предлагаю использовать регулярные косые черты ('/') все время - это тоже будет работать в Windows: 'log.path C:/Users/Maurice/Desktop/Logs' –

+0

Ah ok it works, thanks много. – Maurice

4

В файле свойств, вам необходимо либо использовать прямую косую черту:

C:/Users/Maurice/Desktop/Logs 

Или бежал обратную косую черту:

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

Java-properties file format подсказывает, что символ обратной косой черты ("\") сбегает персонаж, который следует за ним, поэтому, чтобы получить буквальный путь к окну, вы должны иметь:

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

Однако Java преобразует символы-разделители пути для вас автоматически в соответствии с платформы во время выполнения, так что вы можете избежать этого, всегда использовать прямую косую черту:

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

Вы можете хранить Properties в файл первый, то загрузите его снова, чтобы использовать. Properties позаботится о том, чтобы ускользнуть от него.

Смежные вопросы