Dalam projek Java anda, anda menghadapi ralat semasa cuba mengakses teks fail daripada laluan relatif yang ditentukan. Ralat ini timbul daripada ketidakupayaan kelas java.io.File untuk mengesan laluan yang ditetapkan.
Untuk menangani isu ini, adalah disyorkan untuk mendapatkan semula fail daripada classpath dan bukannya bergantung pada sistem fail. Dengan berbuat demikian, anda menghapuskan keperluan untuk laluan relatif dan memastikan bahawa fail diperoleh tanpa mengira direktori kerja semasa.
Dengan mengandaikan bahawa fail ListStopWords.txt berada dalam pakej yang sama dengan kelas FileLoader, perkara berikut kod menunjukkan cara untuk mendapatkan fail daripada classpath:
<code class="java">URL url = getClass().getResource("ListStopWords.txt"); File file = new File(url.getPath());</code>
Sebagai alternatif, jika tujuan utama anda adalah untuk memperoleh InputStream untuk fail, anda boleh menggunakan yang berikut:
<code class="java">InputStream input = getClass().getResourceAsStream("ListStopWords.txt");</code>
Pendekatan ini lebih disukai kerana ia memuatkan pelbagai perwakilan sistem fail, termasuk sistem fail maya dan laluan rangkaian.
Selain itu, jika fail itu ialah fail sifat yang mengandungi pasangan nilai kunci, anda boleh memuatkannya terus daripada InputStream:
<code class="java">Properties properties = new Properties(); properties.load(getClass().getResourceAsStream("ListStopWords.txt"));</code>
Sila ambil perhatian bahawa jika anda mengakses fail dari dalam konteks statik, anda harus menggantikan getClass() dengan YourClass.class (di mana YourClass mewakili nama kelas anda).
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Sistem tidak dapat mencari laluan yang ditentukan\' Semasa Mengakses Fail dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!