2013-07-13 15 views
10

Mam następujący kod do odczytu pliku tekstowego.Ścieżka projektu Java programu NetBeans pliku tekstowego

public static void main(String[] args) 
{ 
    try 
    { 
    Scanner in = new Scanner(new FileReader("input.txt")); 
    while(in.hasNext()) 
    { 
     System.out.println(in.next()); 
    } 
} 
catch (FileNotFoundException ex) 
{ 
    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); 
} 
} 

Mam struktura projektu skonfigurować w następujący sposób:

build/ directory contains class 
dist/ directory contains the jar file 
src/ directory contains source 
input.txt the text file to read 

Jeśli Kładę tekstowy input.txt w katalogu o nazwie test który jest w tym samym katalogu co build, dist i src, co powinien przejść do parametru filereader, aby nadal mogę znaleźć ten plik?

Odpowiedz

9

Podczas pracy w IDE Netbeans katalog roboczy jest katalogiem głównym projektu, więc odpowiedzieć na pytanie "test/input.txt".

Należy jednak pamiętać, że chociaż jest to całkowicie w porządku do testowania kodu, praca z takimi ścieżkami względnymi w kodzie końcowym (produkcyjnym) może być trudniejsza. W takich przypadkach zawijanie pliku jako zasobu w słoiku i otwieranie go jako strumienia zasobów może być lepszym rozwiązaniem lub oczywiście pracować z absolutnymi ścieżkami.

+0

Czy możesz dać mi trochę więcej informacji o tym, jak owinąć plik jako zasób w słoiku? dzięki – Rhs

+0

Najlepiej unikać pytań "daisychaining", co może nas dość daleko odbiegać od pierwotnego pytania. Spójrz na kilka pytań na ten temat, np. [Tutaj] (http://stackoverflow.com/questions/10605207/accessing-a-java-resource-as-a-file) lub [tutaj] (http: // stackoverflow.com/questions/13114852/using-resource-files-in-java) i wielu innych (użyj funkcji wyszukiwania) i [tego bloga] (http://capturevision.wordpress.com/2008/06/28/ how-to-embed-resource-files-using-netbeans /) pokazuje, jak dodać je w NB. Jeśli napotkasz problemy, nie wahaj się otworzyć nowego pytania. – fvu

5

Jeśli znasz nazwę podkatalogu, wystarczy użyć

Scannner in = new Scanner(new FileReader("test/input.txt")); 
+1

wersja Java systemu Windows może również pracować z "test/input.txt", więc wersja odwróconego ukośnika w ogóle nie jest potrzebna. – fvu