ホームページ  >  記事  >  Java  >  Springboot プロジェクトはリソース ディレクトリ内のファイルをどのように読み取るのでしょうか?

Springboot プロジェクトはリソース ディレクトリ内のファイルをどのように読み取るのでしょうか?

WBOY
WBOY転載
2023-05-19 08:29:201267ブラウズ

1: ClassLoader.getResourceAsStream() メソッドを使用します。

クラス ローダーを使用して、リソース ファイルの入力ストリームを取得できます。このメソッドは、リソース ファイル パスをパラメータとして渡す必要があり、その後、InputStream オブジェクトを返します。

InputStream inputStream = getClass().getClassLoader().getResourceAsStream("file.txt");

このメソッドによって返されるリソース ファイルのパスは、クラス ローダーのルート パスに対する相対パスであることに注意してください。したがって、リソース ディレクトリ内のファイルの場合は、ファイル名の先頭に「classpath:」を付ける必要があります。例: 「クラスパス:file.txt」。

2: Class.getResourceAsStream() メソッドを使用する

リソース ファイルを読み取るには、Class クラスの getResourceAsStream() メソッドを使用できます。このメソッドはリソース ファイルへのパスを入力する必要があり、InputStream オブジェクトを返します。

InputStream inputStream = getClass().getResourceAsStream("/file.txt");

このメソッドによって返されるリソース ファイルのパスは、現在のクラスのパスに相対的です。したがって、リソース ディレクトリ内のファイルの場合は、ファイル名の前に「/」プレフィックスを追加する必要があります。例:「/file.txt」。

3: ResourceLoader を使用してファイルをロードする

Spring の ResourceLoader インターフェイスを使用してリソース ファイルをロードします。 ResourceLoader インターフェイスには getResource() メソッドがあり、リソース ファイル パス パラメータを受け取り、Resource オブジェクトを返します。

Resource resource = resourceLoader.getResource("classpath:file.txt");
InputStream inputStream = resource.getInputStream();

ResourceLoader オブジェクトをクラスに挿入し、メソッドで使用する必要があることに注意してください。例:

@Autowired
private ResourceLoader resourceLoader;

public void readResourceFile() throws IOException {
    Resource resource = resourceLoader.getResource("classpath:file.txt");
    InputStream inputStream = resource.getInputStream();
}

4: ResourceUtils を使用してファイルをロードする

Spring は、リソース ファイルをロードするために使用できる ResourceUtils ツール クラスを提供します。ファイル オブジェクトを取得するには、ResourceUtils.getFile() メソッドを使用します。

File file = ResourceUtils.getFile("classpath:file.txt");

この方法はローカル ファイル システムと JAR ファイルにのみ適用されることに注意してください。 WAR ファイルまたは他の種類のファイルを操作する場合、この方法は機能しない可能性があります。

5: ApplicationContext を使用してファイルをロードする

リソース ファイルをロードするには、ApplicationContext の getResource() メソッドを使用できます。リソース ファイル パスをパラメータとして受け取り、Resource オブジェクトを返すメソッド。

Resource resource = applicationContext.getResource("classpath:file.txt");
InputStream inputStream = resource.getInputStream();

ApplicationContext オブジェクトをクラスに挿入し、メソッドで使用する必要があることに注意してください。例:

@Autowired
private ApplicationContext applicationContext;

public void readResourceFile() throws IOException {
    Resource resource = applicationContext.getResource("classpath:file.txt");
    InputStream inputStream = resource.getInputStream();
}

6: ServletContext を使用してファイルをロードする

ServletContext の getResourceAsStream() メソッドを使用して、リソース ファイルを読み取ることができます。この関数のパラメータはリソース ファイル パスであり、InputStream オブジェクトを返します。

InputStream inputStream = servletContext.getResourceAsStream("/WEB-INF/classes/file.txt");

ServletContext オブジェクトをクラスに挿入し、メソッドで使用する必要があることに注意してください。例:

@Autowired
private ServletContext servletContext;

public void readResourceFile() throws IOException {
    InputStream inputStream = servletContext.getResourceAsStream("/WEB-INF/classes/file.txt");
}

7: ファイル システムを使用してファイルをロードする

File クラスを使用してリソース ファイルを読み取ることができます。完全なファイル パスが必要です。

File file = new File("src/main/resources/file.txt");
InputStream inputStream = new FileInputStream(file);

この方法を使用するには、完全なファイル パスを指定する必要があるため、ファイルが配置されている絶対パスを知っている必要があることに注意してください。

8: パスとファイルを使用してファイルをロードする

Java NIO では、Paths クラスと Files クラスを使用してリソース ファイルを読み取ることができます。この方法には完全なファイル パスが必要です。

Path path = Paths.get("src/main/resources/file.txt");
InputStream inputStream = Files.newInputStream(path);

この方法を使用するには、完全なファイル パスを指定する必要があるため、ファイルが配置されている絶対パスを知っている必要があることに注意してください。

9: ClassPathResource を使用してファイルをロードする

Spring が提供する ClassPathResource クラスを使用して、リソース ファイルを読み取ります。このメソッドにはリソース ファイルの相対パスが必要です。

ClassPathResource resource = new ClassPathResource("file.txt");
InputStream inputStream = resource.getInputStream();

ClassPathResource はクラス パス上のリソース ファイルを検索するため、完全なファイル パスを指定する必要はないことに注意してください。

以上がSpringboot プロジェクトはリソース ディレクトリ内のファイルをどのように読み取るのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。