บทความนี้ส่วนใหญ่ศึกษาปัญหาการอ่านไฟล์ภายใต้เส้นทาง 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();
ประเภทที่สองคือเว็บคอนเทนเนอร์ฝังตัวซึ่งมีคุณสมบัติที่มีเพียงไฟล์เดียวเท่านั้นซึ่งจะไม่ถูกบีบอัดหลังจากเริ่มต้นคอนเทนเนอร์และใช้แพ็คเกจ JAR หรือแพ็คเกจสงครามเมื่อใช้งานจริง
ข้อผิดพลาดแบบนี้มีแนวโน้มที่จะพบกับข้อผิดพลาดมากที่สุด ข้อผิดพลาดที่ใหญ่ที่สุดคือการอ่านในครั้งแรกการดีบักในท้องถิ่นทำงานได้อย่างสมบูรณ์แบบและไม่ได้อยู่ในสภาพแวดล้อม Linux
ขั้นแรกให้ใช้วิธีการรับพา ธ this.getClass().getResource("/")+fileName เพื่อให้ได้วิธีการไหล this.getClass().getResourceAsStream(failName);
เมื่อทำงานในพื้นที่หน้าผาสามารถพบได้และคุณพิมพ์เส้นทาง ใช่มันเป็นไดเรกทอรีการทำงานของคราสและไดเรกทอรีโครงการของเรา แต่ในไดเรกทอรีเป้าหมาย
ตอนนี้ให้คุณวิเคราะห์ว่าทำไมคุณถึงออนไลน์มันคือ GG มันง่ายมาก สำหรับโครงการฝังตัวออนไลน์เราจะใส่ไฟล์ jar ไว้เท่านั้น ฉันเข้าใจว่าไม่สามารถรับเส้นทางในขวดได้ ขวดเป็นสิ่งที่ปิด แตกต่างจากโฟลเดอร์ไม่สามารถเป็น c: /home/xx.jar/file.txt
การอ่านไฟล์ในขวดเราสามารถใช้สตรีมเพื่ออ่านไม่ใช่ไฟล์ไฟล์ต้องเกี่ยวข้องกับพา ธ ฉันเพิ่งสะกดเส้นทางของ Jar
วิธีอ่านไฟล์ใน JAR:
classPathResource classpathResource = ใหม่ classPathResource ("test.txt"); รับสตรีมไฟล์: classPathResource .getInputStream();
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับการอ่านไฟล์ภายใต้เส้นทาง classpath ในโครงการเว็บ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!