Как загрузить файловый ресурс в Java и прочитать его содержимое при загрузке Spring? - PullRequest
0 голосов
/ 14 декабря 2018

Работает следующий код:

 private List<String> readFile() {
    List<String> result = new ArrayList<>();
    ClassLoader classLoader = getClass().getClassLoader();
    InputStream inputStream = classLoader.getResourceAsStream("passwords.txt");
    BufferedReader reader = null;
    InputStreamReader streamReader = null;
    try {
      streamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);
      reader = new BufferedReader(streamReader);
      String line;
      while((line = reader.readLine()) != null) {
        line.trim();
        result.add(line);
      }
    }
    catch (IOException e) {
      e.printStackTrace();
    }
    return result;
  }

Однако мне сказали, что я могу сделать это более изощренным способом: добавить ресурс с помощью весенней загрузки следующим образом:

@Value("classpath:passwords.txt")
  private Resource passwordFile;

А затем использовать Java 7 метод Files.readAllLines(Path, Chatset).Однако, когда я переписал свой код следующим образом:

@PostConstruct
  private List<String> readFile() {
    try {
      result =  Files.readAllLines(passwordFile.toFile.getPath, StandardCharsets.UTF_8)
    }
    ....
  }

Кажется, что моя переменная result имеет размер 0 (что неверно).Где моя ошибка?Или как мне переписать мой рабочий код более изощренным способом?

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