يدرس هذه المقالة بشكل أساسي مشكلة قراءة الملفات ضمن مسار ClassPath ضمن مشروع الويب ، على النحو التالي.
أولاً ، نقوم بتقسيمها إلى فئتين ونصنفها بواسطة حاويات الويب
أحدهما هو مشروع ويب عادي ، مثل استخدام حاوية Tomcat ، والتي تتميز بالحزمة المضغوطة التي يتم إلغاء ضغطها في مجلد عند بدء تشغيل الحاوية. عند الوصول إلى المشروع ، فإنه في الواقع يصل إلى المجلد ، وليس الحزمة الجرة أو الحرب.
هذه هي طريقة الحصول على المسار this.getClass().getResource("/")+fileName
طريقة للحصول على دفق this.getClass().getResourceAsStream(failName);
استيراد org.springframework.util.ResourceUtils ؛ ملف الملف = ResourceUtils.getFile ("classpath: test.txt") ؛أو
classPathResource classPathResource = جديد classPathResource ("test.txt") ؛ الحصول على الملف: classPathResource .getFile();
الحصول على دفق الملف: classPathResource .getInputStream();
النوع الثاني هو حاوية ويب مضمنة ، والتي لها سمة من سمات وجود ملف جرة واحد فقط ، والذي لن يتم إلغاء ضغطه بعد بدء الحاوية ، ويتم استخدام حزمة جرة أو حزمة الحرب عند الوصول إلى المشروع بالفعل.
هذا النوع من المآزق هو الأكثر احتمالا لمواجهة المزالق. أكبر مأزق هو أنه يتم قراءته في الطريقة الأولى ، والتصحيح محليًا ، ويعمل بشكل مثالي ، وليس في بيئة Linux.
أولاً ، استخدم طريقة الحصول على المسار this.getClass().getResource("/")+fileName للحصول على طريقة التدفق this.getClass().getResourceAsStream(failName);
عند التشغيل محليًا ، يمكن العثور على الجرف ، وتطبع المسار. نعم ، إنه دليل عمل Eclipse لدينا ودليل المشروع ، ولكن في الدليل المستهدف.
الآن دعك تحلل سبب الاتصال بالإنترنت ، إنه GG. الأمر بسيط للغاية. للمشاريع المدمجة عبر الإنترنت ، سنضع فقط ملف جرة عليه. أفهم أنه لا يمكن الحصول على المسار في الجرة. الجرة شيء مغلق. على عكس المجلدات ، لا يمكن أن يكون c: /home/xx.jar/file.txt
قراءة الملفات في الجرار ، يمكننا فقط استخدام التدفقات لقراءة ، وليس الملف ، يجب أن يتضمن الملف المسار. لقد قمت للتو بتهجئة مسار الجرة
كيفية قراءة الملفات في جرة:
classPathResource classPathResource = جديد classPathResource ("test.txt") ؛ الحصول على دفق الملف: classPathResource .getInputStream();
لخص
ما سبق هو المحتوى الكامل لهذه المقالة حول قراءة الملفات تحت مسار ClassPath في مشاريع الويب. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!