2013-11-09 27 views
8

& burada kaynakları okudum, ancak aşağıdaki kodu çalışmadım. Temel olarak, 'src' klasöründen 'Yönetici' adlı bir metin dosyası okumak istiyorum. Göreceli bir yola ihtiyacım olacak, çünkü bu proje başka bir kişiye aktarılabilir. Lütfen benimle sabırlı ol.metin dosyası göreli yolunu nasıl okuyacağım

public void staffExists() throws IOException 
    {    
     //http://stackoverflow.com/questions/2788080/reading-a-text-file-in-java 
     BufferedReader reader = new BufferedReader(new FileReader(getClass().getResourceAsStream ("/DBTextFiles/Administrator.txt"))); 

     try 
     {    
      String line = null; 
      while ((line = reader.readLine()) != null) 
      { 
       if (!(line.startsWith("*"))) 
       { 
        System.out.println(line); 
       } 
      } 

     } 
     catch (IOException ex) 
     { 
      ex.printStackTrace(); 
     }    

     finally 
     { 
      reader.close(); 
     }   
    } 
+2

olası yinelenen [bir projede göreli yol metin dosyası nasıl okunur?] (Http://stackoverflow.com/questions/3844307/how-to-read-text-file-from-relative- proje-yolu) –

+1

Sorun nedir? –

+0

@Dooby Inc: önerilen URL'ye baktık. ama hala çalışamıyorum, lütfen bana rehberlik edin. – user2945412

cevap

16

Bu geçerli mutlak yol (sistemlerde Bildiğim kadarıyla) 'dir:

/path/to/directory/../../otherfolder/etc/ 
Yani

other answer ne dediğini ile geçerli dizine yolunu bulmaktı:

filePath.concat("path to the property file"); 
:
String filePath = new File("").getAbsolutePath(); 

Sonra ile göreli yolu bitiştirmek

1

Bu doğru değildir:

new FileReader(getClass().getResourceAsStream ("/DBTextFiles/Administrator.txt")) 

Sen istiyorum:

new InputStreamReader(getClass().getResourceAsStream ("/DBTextFiles/Administrator.txt")) 
+0

O doğru değil açıklamak iyi olurdu. Teşekkürler. –

+0

yazmıyor –

0

Neredeyse her durumda size taşınabilir ileriye Her durumda "/"." çizgi kullanmalıdır bir kabul Dosya yapıcı ya kullanmalıdır dosya (ana) & Dize (dosya adı) ya da bunun biraz Getti yardıma orada yapmak & burada cevap olsun Şimdi System.getProperty("file.separator").

10

kullanmak Beni hedefe doğru yönlendir. & koduma kısa bir düzenleme yaptı. Umarım orada bazı fakir ruhlara yardım eder.

String filePath = new File("").getAbsolutePath(); 
System.out.println (filePath); 

//http://stackoverflow.com/questions/2788080/reading-a-text-file-in-java  
//http://stackoverflow.com/questions/19874066/how-to-read-text-file-relative-path 
BufferedReader reader = new BufferedReader(new FileReader(filePath + "/src/DBTextFiles/Administrator.txt")); 

try 
{       
    String line = null;   
    while ((line = reader.readLine()) != null) 
    { 
     if (!(line.startsWith("*"))) 
     { 
      System.out.println(line); 
     } 
    }    
} 
catch (IOException ex) 
{ 
    ex.printStackTrace(); 
}    

finally 
{ 
    reader.close(); 
}