この記事は、主に、次のように、Webプロジェクトの下でクラスパスパスの下でファイルを読み取る問題を研究しています。
まず、2つのカテゴリに分割し、Webコンテナで分類します
1つは、Tomcatコンテナの使用など、通常のWebプロジェクトです。これは、コンテナが起動すると、圧縮パッケージがフォルダーに分解されることを特徴としています。プロジェクトにアクセスすると、JARまたはWARパッケージではなく、実際にフォルダーにアクセスしています。
これはthis.getClass().getResource("/")+fileName取得する方法です
this.getClass().getResourceAsStream(failName);
Import org.springframework.util.resourceutils; file file = resourceutils.getFile( "classPath:test.txt");
または
classPathResource classPathResource = new ClassPathResource( "test.txt");
ファイルを取得: classPathResource .getFile();
ファイルストリームを取得: classPathResource .getInputStream();
2番目のタイプは埋め込まれたWebコンテナです。これは、1つのJARファイルのみがあるという特徴を備えており、コンテナの起動後に解凍されず、プロジェクトに実際にアクセスしたときにJARパッケージまたはWARパッケージが使用されます。
この種の落とし穴は、落とし穴に遭遇する可能性が最も高いです。最大の落とし穴は、Linux環境ではなく、局所的にデバッグされ、完全に走る、最初の方法で読まれることです。
まず、パスthis.getClass().getResource("/")+fileName取得する方法を使用して、flow this.getClass().getResourceAsStream(failName);
ローカルで走るとき、崖を見つけることができ、道を印刷します。はい、それは私たちのEclipse Work DirectoryとProject Directoryですが、ターゲットディレクトリにあります。
次に、あなたがオンラインに行く理由を分析しましょう、それはGGです。とても簡単です。オンライン組み込みプロジェクトの場合、JARファイルのみを掲載します。瓶の中の経路を取得できないことを理解しています。瓶は閉じたものです。フォルダーとは異なり、C:/home/xx.jar/file.txtにすることはできません
JARSでファイルを読み取ると、ファイルではなく読み取りにストリームのみを使用できます。ファイルにはパスが含まれている必要があります。瓶の道を綴ったばかりです
jarのファイルの読み方:
classPathResource classPathResource = new ClassPathResource( "test.txt");
ファイルストリームを取得: classPathResource .getInputStream();
要約します
上記は、WebプロジェクトのClassPathパスの下でファイルを読むことに関するこの記事の内容全体です。私はそれが誰にでも役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!