Использование «pathdir» в приложениях Java - PullRequest
0 голосов
/ 12 октября 2010

Во-первых, я использую Ubuntu!:)

Мне нужна некоторая помощь здесь, я создал Java App , я хочу установить дерево путей по умолчанию ,как это:

> cd /anyDirectory/meuRestaurante
> ls
bin/ data/
> cd bin
> ls
meuRestaurante.jar
> cd ..
> cd data
> ls
Cartoes.txt Clientes.txt

Я хочу, чтобы мое приложение Java сохраняло эти файлы txt в каталоге /data, а в каталоге /bin.Exctaly, как должно быть, если я использую эти функции для чтения / сохранения файлов TXT.:

public static String readFile(String fileName) {
    try {
        File file = new File("."+fileName);
        FileReader reader = new FileReader(file);
        BufferedReader in = new BufferedReader(reader);
        String string;
        String returnString = "";
        while ((string = in.readLine()) != null) {
            returnString = "" + returnString + string;
        }
        in.close();
        return returnString;
    } catch (IOException e) {
        System.err.println("readFile " + e.getMessage());
        return null;
    }
}

public static boolean writeFile(String fileName, String newContent){
    try {
        BufferedWriter out = new BufferedWriter(new FileWriter(fileName, true));
        out.write(newContent);
        out.close();
        return true;
    }catch(IOException e){
        System.err.println("writeFile " + e.getMessage());
        return false;
    }
}

Как должно быть fileName?

* 1044совет?

Ответы [ 2 ]

0 голосов
/ 13 октября 2010

Если эти файлы предназначены только для чтения, поместите их в Jar, добавьте Jar в путь к классам приложений и получите к ним доступ с помощью getResource ().

Если файлы предназначены для записи (чтения / записи), не пытайтесь сохранять файлы в месте, соответствующем исполняемому файлу приложения (1).Это приведет к бесконечному разочарованию позже.

Вместо этого поместите файлы данных в подкаталог $ {user.home}.Подкаталог предназначен для того, чтобы приложения не перезаписывали файлы друг друга.Подкаталог может основываться на имени пакета основного класса приложения. Оно должно быть уникальным для вашей организации.

(1)

  • Ни то, ни другоеапплеты, ни приложения.запущенные с помощью Java Web Start могут обнаружить местоположение приложения.хранится на локальном диске.

  • В течение многих лет Microsoft велела разработчикам не сохранять настройки программы в папке «Program Files».

  • Пока приложение.почти гарантируется возможность записи / чтения из дома пользователя, ужесточение безопасности в последнее время означает, что другие местоположения гораздо менее надежны.

0 голосов
/ 12 октября 2010

Попробуйте это:

data/Cartoes.txt
...