Maison  >  Article  >  Java  >  Comment lire des fichiers sous ressources lorsque SpringBoot est déployé sur Linux

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

王林
王林avant
2023-05-11 10:01:051573parcourir

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>

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");

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");

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer