Heim  >  Artikel  >  Java  >  Wie liest das Springboot-Projekt Dateien im Ressourcenverzeichnis?

Wie liest das Springboot-Projekt Dateien im Ressourcenverzeichnis?

WBOY
WBOYnach vorne
2023-05-19 08:29:201183Durchsuche

1: Verwenden Sie die Methode ClassLoader.getResourceAsStream()

Sie können den Klassenlader verwenden, um den Eingabestream der Ressourcendatei abzurufen. Diese Methode erfordert die Übergabe eines Ressourcendateipfads als Parameter und gibt dann ein InputStream-Objekt zurück.

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

Beachten Sie, dass der von dieser Methode zurückgegebene Ressourcendateipfad relativ zum Stammpfad des Klassenladers ist. Daher müssen Sie für Dateien im Ressourcenverzeichnis dem Dateinamen „classpath:“ voranstellen. Zum Beispiel: „classpath:file.txt“.

2: Verwenden Sie die Methode Class.getResourceAsStream()

Um Ressourcendateien zu lesen, können Sie die Methode getResourceAsStream() der Class-Klasse verwenden. Diese Methode erfordert die Eingabe des Pfads zu einer Ressourcendatei und gibt ein InputStream-Objekt zurück.

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

Der von dieser Methode zurückgegebene Ressourcendateipfad ist relativ zum Pfad der aktuellen Klasse. Daher müssen Sie für Dateien im Ressourcenverzeichnis dem Dateinamen „/“ voranstellen. Beispiel: „/file.txt“.

3: Verwenden Sie ResourceLoader, um Dateien zu laden.

Verwenden Sie die ResourceLoader-Schnittstelle von Spring, um Ressourcendateien zu laden. Die ResourceLoader-Schnittstelle verfügt über eine getResource()-Methode, die einen Ressourcendateipfadparameter akzeptiert und ein Resource-Objekt zurückgibt.

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

Es ist zu beachten, dass das ResourceLoader-Objekt in die Klasse eingefügt und in der Methode verwendet werden muss. Zum Beispiel:

@Autowired
private ResourceLoader resourceLoader;

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

4: Verwenden Sie ResourceUtils zum Laden von Dateien

Spring stellt die Toolklasse ResourceUtils bereit, die zum Laden von Ressourcendateien verwendet werden kann. Um ein Dateiobjekt abzurufen, verwenden Sie die Methode ResourceUtils.getFile().

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

Hinweis: Diese Methode funktioniert nur auf lokalen Dateisystemen und JAR-Dateien. Diese Methode funktioniert möglicherweise nicht, wenn Sie mit WAR-Dateien oder anderen Dateitypen arbeiten.

5: Verwenden Sie ApplicationContext zum Laden von Dateien

Um Ressourcendateien zu laden, können Sie die Methode getResource() in ApplicationContext verwenden. Eine Methode, die einen Ressourcendateipfad als Parameter akzeptiert und ein Resource-Objekt zurückgibt.

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

Es ist zu beachten, dass das ApplicationContext-Objekt in die Klasse eingefügt und in der Methode verwendet werden muss. Zum Beispiel:

@Autowired
private ApplicationContext applicationContext;

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

6: Dateien mit ServletContext laden

Sie können die Methode getResourceAsStream() von ServletContext verwenden, um Ressourcendateien zu lesen. Der Parameter dieser Funktion ist der Ressourcendateipfad und gibt ein InputStream-Objekt zurück.

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

Es ist zu beachten, dass das ServletContext-Objekt in die Klasse eingefügt und in der Methode verwendet werden muss. Zum Beispiel:

@Autowired
private ServletContext servletContext;

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

7: Verwenden Sie das Dateisystem, um Dateien zu laden.

Sie können die File-Klasse verwenden, um Ressourcendateien zu lesen. Der vollständige Dateipfad ist erforderlich.

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

Es ist zu beachten, dass die Verwendung dieser Methode die Angabe des vollständigen Dateipfads erfordert. Sie müssen also den absoluten Pfad kennen, in dem sich die Datei befindet.

8: Dateien mithilfe von Pfaden und Dateien laden

In Java NIO können Ressourcendateien mithilfe von Pfad- und Dateiklassen gelesen werden. Diese Methode erfordert den vollständigen Dateipfad.

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

Es ist zu beachten, dass die Verwendung dieser Methode die Angabe des vollständigen Dateipfads erfordert. Sie müssen also den absoluten Pfad kennen, in dem sich die Datei befindet.

9: Verwenden Sie ClassPathResource zum Laden von Dateien.

Verwenden Sie die von Spring bereitgestellte ClassPathResource-Klasse, um Ressourcendateien zu lesen. Diese Methode erfordert den relativen Pfad der Ressourcendatei.

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

Es ist zu beachten, dass ClassPathResource im Klassenpfad nach Ressourcendateien sucht, sodass nicht der vollständige Dateipfad angegeben werden muss.

Das obige ist der detaillierte Inhalt vonWie liest das Springboot-Projekt Dateien im Ressourcenverzeichnis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen