如何在Java中加载文件资源并通过Spring Boot读取其内容?

时间:2018-12-14 17:10:19

标签: java file spring-boot

以下代码有效:

 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;
  }

但是,有人告诉我可以用一种更复杂的方式来做到这一点:使用spring boot注入资源,如下所示:

@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(这是错误的)。我的错误在哪里?或者如何以更复杂的方式重写工作代码?

0 个答案:

没有答案