Apabila cuba mengakses fail menggunakan java.io.File dan menghadapi ralat "Sistem tidak dapat mencari laluan yang ditentukan ," selalunya disebabkan oleh isu dengan laluan relatif. Di Java, laluan relatif bergantung pada direktori kerja semasa, yang sukar dikawal dalam kod Java.
Penyelesaian:
Daripada menggunakan laluan relatif dengan java. io.File, dapatkan fail terus daripada classpath. Kaedah ini memastikan bahawa fail sentiasa terletak relatif kepada direktori projek, tanpa mengira direktori kerja semasa.
Untuk mendapatkan fail daripada laluan kelas:
<code class="java">URL url = getClass().getResource("ListStopWords.txt"); File file = new File(url.getPath());</code>
Pendekatan ini memastikan bahawa lokasi fail adalah konsisten dalam projek, walaupun jika projek itu dibungkus ke dalam fail JAR atau digunakan ke dalam yang lain persekitaran.
Alternatif untuk Strim Input:
Jika anda hanya memerlukan strim input untuk fail, anda boleh menggunakan:
<code class="java">InputStream input = getClass().getResourceAsStream("ListStopWords.txt");</code>
Fail Sifat:
Jika fail itu ialah fail sifat dengan pasangan nilai kunci, anda boleh terus muatkannya ke dalam objek Properties:
<code class="java">Properties properties = new Properties(); properties.load(getClass().getResourceAsStream("ListStopWords.txt"));</code>
Nota:
Apabila mengakses fail dalam konteks statik, gunakan YourClass.class dan bukannya getClass().
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelak Ralat \'Sistem tidak dapat mencari laluan yang ditentukan\' Apabila Menggunakan Laluan Relatif dalam Projek Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!