размещение входного файла относительно программы - PullRequest
2 голосов
/ 23 мая 2011

В моей программе (простое простое приложение) я читаю файл a.txt. Теперь я передам программу кому-то другому, и он сможет ее запустить. Я не хочу, чтобы путь к файлу был зафиксирован как D:\a.txt ,, вместо этого он должен быть относительно моей программы. Где мне разместить файл, чтобы моя программа всегда находила его?

File file = new File("D:\aks.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
while( (str= bufferedReader.readLine())!=null){

}

Мой код работает нормально, когда я жестко кодирую путь, например, D: \ a.txt

1 Ответ

1 голос
/ 23 мая 2011

Поместите файл в classpath (например, корень пакета или в определенный пакет) и просто получите его прямо из classpath, как показано ниже

InputStream input = getClass().getResourceAsStream("/a.txt");
// ... (continue with InputStreamReader and so on)

(точный путь зависит от местоположения текущего класса и от того, используете ли вы префикс / для запуска из корня пакета и какой загрузчик классов вы используете)

Упакуйте и распространите его как один JAR-файл executetabele.

Смотри также:

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