Не могу найти текстовый файл, не могу определить его путь

Я запускаю Java-приложение, которое должно прочитать текстовый файл и сохранить его в строку, но я продолжаю получать NoSuchFileException, Текстовый файл находится в папке рядом с src под названием assets.

static String readFile(String path, Charset encoding) throws IOException {
    byte[] encoded = Files.readAllBytes(Paths.get(path));
    return new String(encoded, encoding);
}

Это метод, который читает файл, который я нашел здесь.

try {
    string = readFile("test.txt",Charset.defaultCharset());
} catch (IOException e) {
    e.printStackTrace();
}

Я пробовал "/assets/test.txt" и другие варианты также безрезультатно.

2 ответа

Решение

Если вы выполняете программу Java из Eclipse, типичная конфигурация запуска поместит базовый каталог проекта в качестве текущего рабочего каталога процесса Java. Поэтому вам нужно использовать относительный путь, основанный на этом каталоге (assets/test.txt или же src/main/assets/test.txt или похож). Вы также можете использовать полный путь (пример: /somewhere/workspace/project/assets/test.txt).

Вы всегда можете использовать System.out.println("CWD=" + new File(".").getAbsolutePath()); запросить каталог, в котором среда выполнения Java считает, что он запущен.

Просто используйте (без косой черты):

try {
  string = readFile("assets/test.txt",Charset.defaultCharset());
} catch (IOException e) {
  e.printStackTrace();
}

Получить путь относительно корня проекта.

Другие вопросы по тегам