Dieser Artikel untersucht hauptsächlich das Problem des Lesens von Dateien unter dem Klassenpfad unter dem Webprojekt wie folgt.
Erstens teilen wir es in zwei Kategorien ein und klassifizieren es nach Webcontainern
Eines ist ein gewöhnliches Webprojekt, beispielsweise die Verwendung des Tomcat -Containers, der durch das komprimierte Paket gekennzeichnet ist, das beim Start des Containers in einen Ordner dekomprimiert wird. Wenn auf das Projekt zugegriffen wird, greift es tatsächlich auf den Ordner zu, nicht auf das Glas- oder Kriegspaket.
Dies ist die Methode, um den Pfad zu erhalten this.getClass().getResource("/")+fileName
Methode zum Erhalten von Stream this.getClass().getResourceAsStream(failName);
import org.springframework
oder
Classpathresource classpathresource = new classPathresource ("test.txt"); Holen Sie sich die Datei: classPathResource .getFile();
Dateistream erhalten: classPathResource .getInputStream();
Der zweite Typ ist eingebetteter Webcontainer, der ein Merkmal hat, dass es nur eine JAR -Datei gibt, die nach Beginn des Containers nicht dekomprimiert wird, und das JAR -Paket oder das Kriegspaket wird verwendet, wenn das Projekt tatsächlich zugegriffen wird.
Diese Art von Fallstrick tritt am wahrscheinlichsten gegen Fallstricke auf. Die größte Gefahr besteht darin, dass es in erster Linie gelesen wird, die lokal debuggen, perfekt laufen und nicht in der Linux -Umgebung.
Verwenden Sie zunächst die Methode this.getClass().getResourceAsStream(failName); um den Pfad zu erhalten this.getClass().getResource("/")+fileName
Wenn Sie lokal laufen, kann die Klippe gefunden werden, und Sie drucken den Pfad aus. Ja, es ist unser Eclipse -Arbeitsverzeichnis und unser Projektverzeichnis, jedoch im Zielverzeichnis.
Lassen Sie sich nun analysieren, warum Sie online gehen, es ist GG. Es ist sehr einfach. Für Online -Embedded -Projekte setzen wir nur eine JAR -Datei darauf ein. Ich verstehe, dass der Weg im Glas nicht erhalten werden kann. Das Glas ist eine geschlossene Sache. Im Gegensatz zu Ordnern kann es nicht c: /home/xx.jar/file.txt sein
Lesen von Dateien in JARs können wir nur Streams zum Lesen verwenden, nicht Datei, die Datei muss den Pfad beinhalten. Ich habe gerade den Weg des Glases geschrieben
So lesen Sie Dateien in Jar:
Classpathresource classpathresource = new classPathresource ("test.txt"); Dateistream erhalten: classPathResource .getInputStream();
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels zum Lesen der Dateien unter dem Klassenpfad in Webprojekten. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!