2013-08-23 7 views
0

Я разрабатываю приложение Java. У меня есть текстовый файл, например так:Сохранение настроек программы в Java

Component(Journal, Account, AnalysisCodes...): 
Journal 
***** 
Method(Query, Import, CreateOrAmend...): 
Import 
***** 
Username: 
PKP 
***** 
Password: 
test 
***** 
Host: 
localhost 
***** 
Port: 
8080 
***** 
Program's path: 
C:/Connect Manager/ 
***** 
XML Name: 
ledger.xml 
***** 

программа Эта ява ничего не писать в этом файле, он просто читает. Однако я не мог понять, где хранить этот txt-файл. Путь должен быть одинаковым для каждого пользователя, поскольку он жестко закодирован внутри. Я не могу прочитать путь к программе, если я не знаю путь к программе.

Вот мой код:

String lineconfig=""; 
String pathconfig= "C:/Connect Manager/" + "config.txt"; 
BufferedReader readerconfig= new BufferedReader(new FileReader(pathconfig)); 
while((lineconfig=readerconfig.readLine())!=null) 
{ 
    stringList.add(lineconfig); 
} 
readerconfig.close(); 

Как вы видите, мне нужно точное местоположение для pathconfig.

Извините, если я вызвал какое-либо замешательство. Буду признателен за ваши предложения.

Кроме того: Другая программа должна иметь возможность редактировать это или пользователя. Я сделаю эту программу банкой.

+0

Поместите этот файл в проекте и установить 'pathconfig' так же, как' config.txt'. – SAbbasizadeh

+0

'MyClass.class.getResourceAsStream (" config.txt ");' затем поставьте его на том же уровне, что и ваш класс. Или вы можете использовать 'System.getProperty (« user.dir »)' – crush

+2

Не напрямую связан с вопросом, но может быть полезным для OP: посмотрите [Файлы свойств] (http://docs.oracle. com/javase/7/docs/api/java/util/Properties.html) – Paranaix

ответ

4

Я предлагаю вам использовать файл . Лучше читать, и пользователю проще настроить свойства. Посмотрите на это short tutorial для объяснения файла .properties. Чтобы читать и записывать значения из файла и в файл, выполните следующие действия: short tutorial.

Вы пробовали с помощью:

path = "config.txt" 

Если вы используете этот синтаксис, который вы должны получить файл в же каталоге, что и банку. Имейте в виду, что вы можете использовать ярлыки «..» и «.». для перехода в каталог.

С .. вы переходите в каталог сверху.

С . вы получаете свой фактический каталог.

+0

Похоже, этот учебник будет работать. Спасибо за ответ! – Alasse

+0

Ваш прием ^^ Посмотрите на обновление с определениями того, как использовать файл propertie и учебник. – Gerret

4

Я бы воспользовался недвижимостью, и вы можете разместить их в своей папке res. Отъезд this example для получения дополнительной информации.

public class App 
{ 
    public static void main(String[] args) 
    { 
     Properties prop = new Properties(); 

     try { 
      //load a properties file from class path, inside static method 
      prop.load(App.class.getClassLoader().getResourceAsStream("config.properties");)); 

      //get the property value and print it out 
      System.out.println(prop.getProperty("database")); 
      System.out.println(prop.getProperty("dbuser")); 
      System.out.println(prop.getProperty("dbpassword")); 

     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 

    } 
} 

Папка res является частью вашего проекта, так что (то) всегда в одном месте.

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