Membaca Fail dari Laluan Relatif di Java: Menyelesaikan Isu "Path Not Found"
Di Java, mengakses fail melalui laluan relatif menggunakan java .io.File kadangkala boleh menemui ralat "Sistem tidak dapat mencari laluan yang ditentukan." Ini boleh berlaku apabila berurusan dengan fail yang terletak dalam pakej atau JAR yang berbeza. Untuk menyelesaikan isu ini, pendekatan alternatif diperlukan.
Penyelesaian 1: Mengakses Fail melalui Classpath
Daripada menggunakan laluan relatif dalam Fail, lebih baik dapatkan fail daripada laluan kelas. Ini memastikan kebebasan daripada direktori kerja semasa. Dengan mengandaikan fail berada dalam pakej yang sama dengan kelas yang mengaksesnya, kod berikut boleh digunakan:
<code class="java">URL url = getClass().getResource("ListStopWords.txt"); File file = new File(url.getPath());</code>
Penyelesaian 2: Menggunakan InputStream
Jika dikehendaki Hasilnya adalah untuk mendapatkan InputStream untuk fail, mengaksesnya secara terus dari classpath adalah lebih cekap:
<code class="java">InputStream input = getClass().getResourceAsStream("ListStopWords.txt");</code>
Pertimbangan untuk Fail Sifat
Jika fail itu adalah sifat fail (mengandungi pasangan nilai kunci), InputStream boleh digunakan untuk memuatkan sifat secara terus:
<code class="java">Properties properties = new Properties(); properties.load(getClass().getResourceAsStream("ListStopWords.txt"));</code>
Nota untuk Konteks Statik
Apabila mengakses fail daripada konteks statik, gantikan getClass() dengan YourClass.class atau FileLoader.class dalam contoh kod di atas.
Dengan menggunakan teknik ini, mengakses fail daripada laluan relatif dalam Java boleh dilakukan dengan pasti, mengelakkan "Path Ralat Tidak Ditemui" dan memastikan kebebasan aplikasi daripada direktori kerja semasa.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelak Ralat \'Path Not Found\' Semasa Membaca Fail dengan Laluan Relatif di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!