ホームページ  >  記事  >  Java  >  SpringBoot が Linux にデプロイされている場合にリソースの下のファイルを読み取る方法

SpringBoot が Linux にデプロイされている場合にリソースの下のファイルを読み取る方法

王林
王林転載
2023-05-11 10:01:051571ブラウズ

背景

日常の業務開発では、リソースフォルダーに固定のリソースファイルを置き、使用する際に相対パスでファイルを取得することが多いですが、非常にシンプルな機能に見えます
取得したファイルの内容が文字化けしていたり​​、ファイルを読み取れなかったりするなど、小さな落とし穴があるようです。

文字化けを読む

これは非常に簡単で、後で取得するファイルはコンパイルせずにそのままパッケージに入れることをMavenプラグインに指定します。

ファイルを読む

これは小さな落とし穴で、問題を見つけるのに 1 ~ 2 時間かかりました。 。 。 。 。絶望

まず、絶対に実現不可能な方法を2つ挙げます。主な理由は、開発環境では問題ないが、本番環境では動作しないからです。

<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>
以下は実現可能な方法ですが、いくつかの落とし穴があります。 。 。 。 。 。この落とし穴はまったくの偶然によって引き起こされたものです

方法一:
File currentFolder = ResourceUtils.getFile("classpath:excelTemplate/model.xls");
方法二:
this.class.getResourceAsStream("excelTemplate/model.xls");
これら 2 つの方法は間違いなく使いやすいです。ファイルを取得するときにエラーを報告した友人もいるかもしれません。エラーが発生した場合も、ローカルでファイルを開いて今すぐ試してください。ファイルを確認してください。破損はありますか。

写真と真実があると間違いなく役立ちます


SpringBoot が Linux にデプロイされている場合にリソースの下のファイルを読み取る方法

#プログラムが実際に Linux 上で実行されていると誤解しないでください。それを確認するには、開発ツールのリモート スクリーンショットを使用して簡単にデバッグしてください


SpringBoot が Linux にデプロイされている場合にリソースの下のファイルを読み取る方法

以上がSpringBoot が Linux にデプロイされている場合にリソースの下のファイルを読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。