Spring Boot プロジェクトでは、多くの場合、resources
ディレクトリ内のファイルを取得する必要があります。これらのファイルには、構成ファイル、テンプレート ファイル、静的リソースなどが含まれる場合があります。resources
この記事では、ディレクトリ内のファイルを取得するためによく使用される 3 つの方法を紹介します。
1.ResourceLoader
インターフェースの使用
ResourceLoader
classpath
このインターフェースは、以下のリソースを含むさまざまなリソースをロードするために Spring フレームワークによって提供されるインターフェースです。Spring Boot では、ディレクトリ内のファイルはResourceLoader
依存関係注入インターフェイスを通じて取得できます。resources
以下に例を示します。
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Component;
@Component
public class YourComponent {
private final ResourceLoader resourceLoader;
public YourComponent(ResourceLoader resourceLoader) {
this.resourceLoader = resourceLoader;
}
public void getResource() throws IOException {
Resource resource = resourceLoader.getResource("classpath:your-file.txt");
InputStream inputStream = resource.getInputStream();
// 对文件进行操作,比如读取内容等
}
}
上記のコードでは、ResourceLoader
コンストラクターを通じてインターフェイスのインスタンスを挿入しました。次に、resourceLoader.getResource("classpath:your-file.txt")
メソッドを使用してyour-file.txt
ファイルのResource
オブジェクトを取得します。Resource
オブジェクトを通じて、ファイルの入力ストリームを取得し、それを操作できます。
2.ClassPathResource
クラスの使用
ClassPathResource
このクラスは、クラスパスの下にリソースをロードするために Spring フレームワークによって提供されるクラスです。Spring Boot では、ClassPathResource
クラスを使用してresources
ディレクトリ内のファイルを取得できます。以下に例を示します。
import org.springframework.core.io.ClassPathResource;
public void getResource() throws IOException {
ClassPathResource resource = new ClassPathResource("your-file.txt");
InputStream inputStream = resource.getInputStream();
// 对文件进行操作,比如读取内容等
}
上記のコードでは、ClassPathResource
クラスを使用してyour-file.txt
ファイルを取得します。クラスパスから直接ファイルを検索し、Resource
オブジェクトを返します。
3.使用ResourceUtils.getFile()
方法
ResourceUtils
クラスは、リソースを操作するために Spring フレームワークによって提供されるユーティリティ クラスです。Spring Boot では、メソッドを使用してディレクトリ内のファイルResourceUtils.getFile()
を取得できます。resources
以下に例を示します。
import org.springframework.util.ResourceUtils;
public void getResource() throws IOException {
File file = ResourceUtils.getFile("classpath:your-file.txt");
// 对文件进行操作,比如读取内容等
}
上記のコードでは、ResourceUtils.getFile()
メソッドを使用してyour-file.txt
ファイルを取得します。File
ファイル上で直接操作できるオブジェクトを返します。
4. 注意事項
上記の方法を使用してresources
ディレクトリ内のファイルを取得する場合は、次の点に注意してください。
- ファイルのパスと名前が正しいこと、およびファイルが
resources
ディレクトリ内にあることを確認してください。 - ResourceLoaderを使用する場合