Geçerli çalışma dizinimin dışındaki bir dosyayı, Java'da File
ve URL
sınıflarını kullanarak okumaya çalışıyorum. Geçerli çalışma dizininin varsayılan olarak .
tarafından "temsil edildiğini" biliyorum.Geçerli çalışma dizini dışındaki dosyaların tam yolunu alma [java]
URL url = getClass().getResource("./file1.txt"); /* or "./anotherFolder/../file1.txt", or simply "file1.txt"*/
File f = new File(url.getPath());
ve her şeyin beklendiği gibi çalışır: Ben /folders/Desktop/file1.txt
bir dosyayı file1.txt
okumak istiyorsanız benim Java sınıfına varsayarsak
ben aşağıdakileri yapabilirsiniz, /folders/Desktop/MyClass.java
altındadır.
Ancak geçerli çalışma dizininde olmayan ve alt dizininde olmayan bir dosyayı okumak için ne yapmalıyım? Örneğin, dosyanın yolu /folders/file1.txt
mu? Her yerde aradım ama hiçbir şey bulamadım. ../file1.txt
, ./../file1.txt
ve diğerlerini denedim, ancak hiçbir şey işe yaramıyor. Belki bir şeyi özledim ya da belki doğru yerlerde aramadım.
Yeni FIle ("/ folders/file1.txt") ile ilgili sorun nedir? – Turo
Bu yönerge yanlış değil, benim durumumda çalışır. Sorun, geçerli çalışma dizininin alt dizinlerinde olmayan dosyaları okumak istediğimde ortaya çıkar. Özellikle, bir File sınıfının bir örneğini oluşturmaya çalıştığımda bir java.lang.NullPointerException atılır. – Process0
Kaynak kullanmayın, sadece yeni Dosya (dosya adı). Dosya, yol doğru olduğu sürece herhangi bir yerde olabilir. Dosya adı boş değilken NPE'yi nasıl atabilir? – Turo