Maison > Java > javaDidacticiel > le corps du texte

Comment lire des fichiers sous ressources lorsque SpringBoot est déployé sur Linux

王林
Libérer: 2023-05-11 10:01:05
avant
1602 Les gens l'ont consulté

Contexte

Dans le développement commercial quotidien, nous plaçons généralement des fichiers de ressources fixes dans le dossier des ressources et obtenons les fichiers via des chemins relatifs lors de leur utilisation. Cela semble être une fonction très simple
Il semble y avoir quelques petits pièges. . , par exemple, le contenu du fichier obtenu est tronqué ou le fichier ne peut pas être lu.

Lecture de caractères tronqués

C'est très simple Spécifiez dans le plug-in maven que les fichiers à obtenir ultérieurement ne seront pas compilés et mis dans le package tels quels

<plugin>
    <groupid>org.apache.maven.plugins</groupid>
    <artifactid>maven-resources-plugin</artifactid>
    <configuration>
        <nonfilteredfileextensions>
            <nonfilteredfileextension>sql</nonfilteredfileextension>
            <nonfilteredfileextension>xlsx</nonfilteredfileextension>
            <nonfilteredfileextension>xls</nonfilteredfileextension>
        </nonfilteredfileextensions>
    </configuration>
</plugin>
Copier après la connexion

Lecture des fichiers

C'est un petit gouffre. , et j'ai dû le bricoler plusieurs fois. Il a fallu des heures pour trouver le problème. . . . . Désespéré

Tout d'abord, énumérez deux méthodes absolument irréalisables. La raison principale est qu'il n'y a aucun problème dans l'environnement de re-développement, mais cela ne fonctionnera pas en production

方法一:
File currentFolder = ResourceUtils.getFile("classpath:excelTemplate/model.xls");
方法二:
this.class.getResourceAsStream("excelTemplate/model.xls");
Copier après la connexion

Je parlerai des méthodes réalisables ci-dessous, mais il y en a aussi. quelques pièges. . . . . . Ce piège est purement accidentel.

方法一:
Resource resource = new ClassPathResource("excelTemplate/model.xls");
InputStream resourceAsStream = resource.getInputStream();

方法二:
InputStream resourceAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("excelTemplate/model.xls");
Copier après la connexion

Ces deux méthodes sont définitivement faciles à utiliser. Certains amis ont peut-être signalé une erreur lors de l'obtention du fichier, si une erreur se produit également, vous pouvez l'ouvrir localement et l'essayer maintenant pour voir si le fichier est correct. le fichier est endommagé.

Avoir des images et la vérité est certainement utile

Comment lire des fichiers sous ressources lorsque SpringBoot est déployé sur Linux

Ne vous méprenez pas sur le fait que le programme fonctionne effectivement sous Linux. Afin de le vérifier, utilisez l'outil de développement Remote pour déboguer et prendre des captures d'écran facilement

Comment lire des fichiers sous ressources lorsque SpringBoot est déployé sur Linux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal