2016-04-06 22 views
1

Bir proje klasörünün içinde bulunan bir metin dosyasına, output.txt erişmeye çalışıyorum. Aşağıdaki görüntü klasör yapısını göstermektedir.java projesinde metin dosyasına erişilemiyor

String file=".\\testFiles\\output.txt"; 
BufferedReader br=new BufferedReader(new FileReader(file)); 

Yukarıdaki kodu kullanarak bu dosyayı erişmeye çalıştığınızda

enter image description here

, ben şu istisna olsun.

java.io.FileNotFoundException: .\testFiles\output.txt (No such file or directory) 

farklı dosya yolu biçimleri denedi ama hiçbiri çalıştık. Sanırım sorun dosya yolu formatı ile.

Şimdiden teşekkürler.

+1

Olası kopya: http://stackoverflow.com/questions/22978170/java-io-filenotfoundexception-in-eclipse – xploreraj

+0

Zaten verilen yanıtlara ek olarak, Java'daki yolları sabitlerseniz eğik çizgiler kullanın. – Axel

+0

çocuklar hepiniz yanıtlarınız için teşekkür ederiz. Sonunda, şimdilik tam bir mutlak yol için yerleştim. Bir dahaki sefere tüm yorumları ve cevapları kesinlikle tavsiye ederim. – sAm

cevap

1

seni o kadar gibi geçerli dizinde bir klasör/dosya alabilirsiniz Yanlış hatırlamıyorsam:

File folder = new File("testFiles"); 

Sonra absolutePath alma ve böylece gibi onunla yeni bir dosya oluşturarak dosyayı açabilirsiniz:

File file = new File(folder.getAbsoluteFile() + File.separator + "output.txt"); 

emin değilim ama siz de yapabilirsiniz düşünüyorum:

File file = new File("testFiles/output.txt"); 

ben inci umut yardımcı olur :)

P.S. Bu test edilmemiş, bu yüzden işe yaramayabilir.

File yourFile = new File("testFiles/output.txt"); 
-2

Sen yeni bir dosya olarak dosyanızı beyan etmelidir? (Eğer bir kaynak klasör olarak testFiles klasör eklerseniz

Thread.currentThread().getContextClassLoader().getResourceAsStream("output.txt") 

Yukarıdaki kod çalışacaktır bu: Yapmak istediğiniz ne bu durumda sınıfları ve bu gibi bir şeyle erişimi bunu birlikte ilgili dosyaları paketlemek olduğunu o sınıfları ile paketlenir ve

iyi bir şey yolu göreli kalabilirler Bu şekilde o, gerek gitmek edilir) çalışma sırasında bulunması alacak demektir Ben senin sorunun nedeni olduğuna inanıyoruz

+2

1. Hayır, bunu yapmak zorunda değilsiniz. 2. Sorunu çözmeyecek. –

1

Eğer ben bu muhtemelen bir savaş olarak paketlenmiş bir web projesi olduğunu tahmin bir webcontent klasörü var aslında bakılırsa:

+0

+1 for testFiles klasörünü bir kaynak klasör olarak eklerseniz yukarıdaki kod çalışır (bu, sınıflarla birlikte paketlenecek ve çalışma zamanında kullanılabilir olacaktır) – Teddy

1

mutlak Yolunuz, başlangıçta bir kullanıcı ile bağlantılı olarak göreceli bir yola bel bağladığınız anlamına gelir. f sistem özelliği user.dir), bu yüzden kullanıcı dizininizin beklediğiniz gibi olmadığını düşünüyorum. Bu yaklaşımın

System.out.println(new File(file).getAbsolutePath()); 

teşekkürler mutlak yol doğru olup olmadığını hızlı bir şekilde bilmek mümkün olacaktır: Ne debug yapabileceği sadece bu.

İlgili konular