2016-08-29 5 views
0

Я пытаюсь получить доступ к файлу High_Scores.txt, хранящемуся в папке Resources.Чтение файла ресурсов Netbeans

Мой проект дерево выглядит следующим образом:

Project Tree

Я использую приведенный ниже код для доступа к файлу. Проверено это similar question, но решения в моем случае не работают.

File file = new File(getClass().getClassLoader().getResource("/Resources/High_Scores.txt").getFile()); 

Но я продолжаю получать NULLPointerException. В этом контексте я не понимаю этого исключения. Может кто-то указать, что я делаю неправильно?

Update:

Если я изменить код для этого:

File file = new File(getClass().getClassLoader().getResource("Resources/High_Scores.txt").getFile()); 

я FILENOTFOUNDException.

+0

@Tunaki Этот вопрос подходит к этому вопросу. Разве вы не видите, что я попытался ответить на этот вопрос, но все еще сталкиваюсь с проблемой. –

+0

Вы не можете получить доступ к ресурсу, находящемуся внутри JAR, в качестве 'File', как вы здесь пытаетесь, это просто не может работать. Вы должны использовать 'InputStream', как показано в связанном вопросе. – Tunaki

+0

Спасибо. Теперь вы должны были ответить на этот вопрос, вместо этого, вместо того, чтобы маркировать дубликат. - –

ответ

0

Для чтения файла можно использовать InputStream вместо нового File(), как это (пусть Предположим, вы вызываете прочитать файл из Board класса)

InputStream stream = Board.class.getResourceAsStream("/Resources/high.txt"); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); 
    StringBuilder out = new StringBuilder(); 
    String line; 
    while ((line = reader.readLine()) != null) { 
     out.append(line); 
    } 
    System.out.println(out.toString()); //Prints the string content read from input stream 
    reader.close(); 

или вы можете использовать ClassLoader Object

File file = new File(ClassLoader.getSystemResource("/Resources/high.txt").getFile()); 

если в конкретных каталогах содержится папка

File file = new File(ClassLoader.getSystemResource("/Resources/high.txt").toURI()); 
+0

Я хочу использовать метод «Файл». Конечно, будет способ чтения/записи файла с использованием файла. Я также хочу написать так, чтобы этот метод ввода не работал для меня. –

+0

@MohsinAnees посмотреть ответ на обновление –

+0

NULLPointerException все еще. Является ли @Tunaki правильным, что использование файла внутри JAR невозможно? –

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