2013-07-13 4 views
10

У меня есть следующий код для чтения текстового файла.Путь проекта Java NetBeans текстового файла

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); 
} 
} 

У меня есть структура проекта создана следующим образом:

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

Если я кладу текстовый файл input.txt в каталог под названием test, который имеет тот же каталог, build, dist и src, какие должен войти в параметр filereader, чтобы я все еще мог найти этот файл?

ответ

9

При работе внутри IDE Netbeans рабочий каталог является корнем проекта, поэтому для ответа на ваш вопрос «test/input.txt».

Обратите внимание, что, хотя это отлично подходит для тестирования кода, работать с относительными путями, как это, в конечном (производственном) коде может быть сложнее. В этих случаях упаковка файла в качестве ресурса в банке и открытие его в качестве ресурса-источника может быть лучшим решением или, конечно, работать с абсолютными путями.

+0

Можете ли вы дать мне немного больше информации о том, как обернуть файл в качестве ресурса в банке? спасибо – Rhs

+0

На SO «daisychaining» вопросы лучше всего избегать, и это приведет нас к далекому оригинальному вопросу. Посмотрите на некоторые вопросы по этому вопросу, например [здесь] (http://stackoverflow.com/questions/10605207/accessing-a-java-resource-as-a-file) или [здесь] (http: // stackoverflow.com/questions/13114852/using-resource-files-in-java) и многие другие (используйте функцию поиска) и [этот блог] (http://capturevision.wordpress.com/2008/06/28/ как-в-embed-resource-files-using-netbeans /) показывает, как добавить их в NB. Если вы столкнетесь с проблемами, не стесняйтесь открывать новый вопрос. – fvu

5

Если вы знаете имя вашего подкаталога, просто используйте

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

Windows версия Java также способна работать с «test/input.txt», поэтому версия обратной косой черты совсем не нужна. – fvu

Смежные вопросы