Cet article étudie principalement le problème de la lecture de fichiers sous le chemin de classe de classe sous le projet Web, comme suit.
Tout d'abord, nous le divisons en deux catégories et la classons par des conteneurs Web
L'un est un projet Web ordinaire, comme l'utilisation du conteneur Tomcat, qui est caractérisé par le package compressé décompressé dans un dossier au début du conteneur. Lorsque le projet est accessible, il accéde réellement au dossier, pas au package de pot ou de guerre.
Ceci est la méthode pour obtenir le chemin this.getClass().getResource("/")+fileName
Méthode pour obtenir un stream this.getClass().getResourceAsStream(failName);
import org.springframework.util.resourceutils; file file = ResourceUtils.getFile ("classpath: test.txt");ou
ClassPathResource ClassPathResource = new ClassPathResource ("test.txt"); Obtenez le fichier: classPathResource .getFile();
Get File Stream: classPathResource .getInputStream();
Le deuxième type est un conteneur Web intégré, qui a une caractéristique selon laquelle il n'y a qu'un seul fichier JAR, qui ne sera pas décompressé après le démarrage du conteneur, et le package de pot ou le package de guerre est utilisé lorsque le projet est réellement accessible.
Ce type de piège est le plus susceptible de rencontrer des pièges. Le plus gros piège est qu'il est lu dans la première façon, débogage localement, fonctionnant parfaitement et non dans l'environnement Linux.
Tout d'abord, utilisez la méthode pour obtenir le chemin de chemin this.getClass().getResource("/")+fileName pour obtenir la méthode de flux this.getClass().getResourceAsStream(failName);
Lors de l'exécution locale, la falaise peut être trouvée et vous imprimez le chemin. Oui, c'est notre répertoire de travail Eclipse et notre répertoire de projet, mais dans le répertoire cible.
Maintenant, laissez-vous analyser pourquoi vous vous rendez en ligne, c'est GG. C'est très simple. Pour les projets intégrés en ligne, nous ne mettrons qu'un fichier en pot. Je comprends que le chemin dans le pot ne peut pas être obtenu. Le pot est une chose fermée. Contrairement aux dossiers, il ne peut pas être c: /home/xx.jar/file.txt
En lisant des fichiers dans des bocaux, nous ne pouvons utiliser que des flux pour lire, et non le fichier, le fichier doit impliquer le chemin d'accès. Je viens d'épeler le chemin du pot
Comment lire des fichiers dans JAR:
ClassPathResource ClassPathResource = new ClassPathResource ("test.txt"); Get File Stream: classPathResource .getInputStream();
Résumer
Ce qui précède est l'intégralité du contenu de cet article sur la lecture des fichiers sous le chemin de classe de classe dans des projets Web. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!