Rumah > Java > javaTutorial > Apakah Cara Terbaik untuk Memuatkan Fail sebagai InputStream dalam Java?

Apakah Cara Terbaik untuk Memuatkan Fail sebagai InputStream dalam Java?

DDD
Lepaskan: 2024-12-20 16:01:18
asal
344 orang telah melayarinya

What's the Best Way to Load a File as an InputStream in Java?

Cara Berbeza untuk Memuatkan Fail sebagai InputStream

Pengenalan:

Java menyediakan berbilang kaedah untuk memuatkan fail sebagai InputStream. Artikel ini meneroka perbezaan antara pendekatan berikut:

  • InputStream ialah = this.getClass().getClassLoader().getResourceAsStream(fileName)
  • InputStream ialah = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName)
  • InputStream ialah = this.getClass().getResourceAsStream(fileName)

penamaan fail Parameter:

Setiap kaedah mentafsir parameter FileName secara berbeza. ClassLoader.getResourceAsStream() menganggap semua laluan sebagai mutlak, manakala Class.getResourceAsStream() menganggapnya relatif kepada pakej kelas panggilan.

Kes Penggunaan yang Sesuai:

1. Menggunakan Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName)

Kaedah ini disyorkan apabila memuatkan fail yang merupakan sebahagian daripada laluan kelas aplikasi dan dibungkus dalam JAR atau EAR yang sama dengan panggilan kelas. Ia menyediakan akses kepada sumber laluan kelas tanpa mengira lokasi kelas atau pakej.

2. Menggunakan this.getClass().getResourceAsStream(fileName)

Kaedah ini sesuai untuk memuatkan fail yang terletak dalam pakej yang sama dengan kelas panggilan. Ia amat berguna apabila fail dibungkus dalam JAR dan boleh diakses melalui laluan kelas.

3. Menggunakan this.getClass().getClassLoader().getResourceAsStream(fileName)

Kaedah ini serupa dengan Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName) tetapi kurang biasa digunakan. Ia juga memuatkan fail daripada laluan kelas aplikasi, tetapi kelakuannya mungkin berbeza-beza bergantung pada pelaksanaan pemuat kelas.

Amaran untuk Pengguna Tomcat 7:

Dalam Tomcat 7 dan ke bawah , ClassLoader.getResourceAsStream() dan Class.getResourceAsStream() mungkin tidak mengendalikan nama sumber yang mengandungi garis miring (/) secara konsisten seperti yang ditentukan oleh Javadoc. Sentiasa pastikan penormalan yang betul apabila menggunakan kaedah ini.

Atas ialah kandungan terperinci Apakah Cara Terbaik untuk Memuatkan Fail sebagai InputStream dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan