Zaten sınıf yolundaysa, disk dosya sistemi yerine sınıf yolundan alın. Göreceli yollarla oynamayın java.io.File. Java kodunun içinden üzerinde hiçbir kontrolünüz olmayan mevcut çalışma dizinine bağlıdırlar.
Bunun sınıfınızla ListStopWords.txtaynı pakette olduğunu varsayarsak, FileLoaderşunları yapın:
URL url = getClass().getResource("ListStopWords.txt");
File file = new File(url.getPath());
Veya nihayetinde peşinde olduğunuz tek şey aslında InputStreambunun bir parçasıysa:
InputStream input = getClass().getResourceAsStream("ListStopWords.txt");
Bu kesinlikle bir disk dosya sistemi yolunu temsil etmeyebileceği new File()için url, bir disk dosya sistemi yolunu temsil etmeyebilir, ancak sanal dosya sistemi yolunu da temsil edebilir (JAR, disk dosya sistemindeki geçici bir klasör yerine belleğe genişletildiğinde gerçekleşebilir) hatta her ikisi de Fileyapıcı tarafından tanım başına sindirilemeyen bir ağ yolu .
Dosya, paket adı ipucu olarak, aslında sadece "yanlış" uzantıya sahip tam değerli bir özellikler dosyasıysa ( key=valuesatırları içeren ), o zaman yöntemi InputStreamhemen besleyebilirsiniz load().
Properties properties = new Properties();
properties.load(getClass().getResourceAsStream("ListStopWords.txt"));
Not: içinden erişime onu çalışırken staticbağlamda, daha sonra kullanmak FileLoader.class(ya da her türlü YourClass.classyerine) getClass()örneklerde yukarıda.
properties.filesiçin2?