Rumah > Java > javaTutorial > Mengapa FileReader Gagal Membaca XML dari JAR Java, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa FileReader Gagal Membaca XML dari JAR Java, dan Bagaimana Saya Boleh Membetulkannya?

Susan Sarandon
Lepaskan: 2024-12-09 08:53:06
asal
597 orang telah melayarinya

Why Does FileReader Fail to Read XML from a Java JAR, and How Can I Fix It?

Menyelesaikan Masalah Fail Sumber Baca Ralat daripada Fail JAR Java

Apabila mengakses sumber dari dalam fail JAR, pembangun sering menghadapi kesukaran. Satu isu sedemikian timbul apabila cuba membaca fail XML daripada JAR menggunakan FileReader, mengakibatkan ralat "FileNotFoundException".

Dalam kes khusus ini, pembangun mengambil semula URL ke fail XML dengan betul tetapi menghadapi ralat apabila menghantarnya ke FileReader. Ini menunjukkan bahawa kaedah mendapatkan semula URL berfungsi. Walau bagaimanapun, isunya terletak pada langkah seterusnya:

XMLReader xr = XMLReaderFactory.createXMLReader();
xr.setContentHandler( this );
xr.setErrorHandler( this );
xr.parse( new InputSource( new FileReader( filename )));
Salin selepas log masuk

FailReader memerlukan laluan fail sebagai hujahnya, manakala URL yang diperolehi oleh getClass().getResource() menghala ke sumber dalam JAR.

Penyelesaian

Untuk menyelesaikan masalah ini, gunakan java.lang.Class.getResourceAsStream(String) kaedah, yang mengembalikan InputStream yang boleh digunakan untuk membaca sumber:

URL url = getClass().getResource("/xxx/xxx/xxx/services.xml");
InputStream is = url.openStream();
Salin selepas log masuk

InputStream kemudiannya boleh digunakan untuk memulakan InputSource untuk penghurai XML:

xr.parse( new InputSource( is ));
Salin selepas log masuk

Dengan menggunakan getResourceAsStream, pembangun boleh berjaya baca sumber XML daripada fail JAR, menghapuskan ralat "FileNotFoundException".

Atas ialah kandungan terperinci Mengapa FileReader Gagal Membaca XML dari JAR Java, dan Bagaimana Saya Boleh Membetulkannya?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan