Динамический путь к файлу в Java (написание и чтение текстовых файлов) - PullRequest
3 голосов
/ 07 апреля 2011

Хорошо, я хочу прочитать имя файла myfile.txt и, допустим, сохраню его в этом каталоге:

home / myName / Documents / workspace / myProject / files myfile.txt

хммм .. Я хочу знать, что я должен передать File(filePath) в качестве моего параметра ... Могу ли я указать что-то вроде ".. \ myfile.txt"?Я не хочу жестко кодировать путь к файлу, потому что он определенно изменится, если, скажем, я открою свой проект на другом ПК.Как мне убедиться, что путь к файлу максимально динамичен?Кстати, я использую Java.

File teacherFile = new File(filePath);

Ответы [ 4 ]

5 голосов
/ 07 апреля 2011

Вы можете ссылаться на файлы, используя относительные пути, такие как ../myfile.txt. Основой этих путей будет каталог, в котором процесс Java был запущен для командной строки. Для Eclipse это корень вашего проекта или то, что вы настроили в качестве рабочего каталога в Run> Run Configurations> Arguments . Если вы хотите увидеть, какой текущий каталог находится внутри Java, вот трюк, чтобы определить его:

File currentDir = new File("");
System.out.println(currentDir.getAbsolutePath());
2 голосов
/ 07 апреля 2011

Вы можете использовать относительные пути, по умолчанию они будут относительно текущего каталога, из которого вы запускаете приложение Java.

Но вы также можете получить домашний каталог пользователя с помощью:

String userHome = System.getProperty("user.home");
1 голос
/ 07 апреля 2011

Вы можете сделать это:

File currentDir = new File (".");
String basePath = currentDir.getCanonicalPath();

сейчас basePath - это путь к папке вашего приложения, добавьте в него точный каталог / имя файла, и все будет хорошо

0 голосов
/ 07 апреля 2011

Вы можете использовать ../myfile.txt Однако расположение этого будет меняться в зависимости от рабочего каталога приложения. Вам лучше определить базовый каталог вашего проекта и использовать пути к нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...