2017-02-18 8 views
0

enter image description hereJava: Как использовать класс Scanner для чтения текстового файла в папке ресурсов

import java.util.*; 
import java.io.File; 
import java.io.IOException; 

public class Test { 

    public static void main(String[] args) { 
     File source; 
     Scanner input; 
     String name; 
     String id; 
     Pokemon x; 
     ArrayList<Pokemon> pokelist = null; 

     try { 
      source = new File("/resources/gen1pokemon.txt"); 
      input = new Scanner(source); 
      input.useDelimiter(","); 
      while(input.hasNext()) { 
       id = input.next(); 
       name = input.next(); 
       x = new Pokemon(id,name); 
       pokelist.add(x); 

       input.nextLine(); 
      } 
     } catch(Exception e) { 
      System.out.println(e); 
     } 
     System.out.println(pokelist.get(0).getName()); 
    } 
} 

У меня есть текстовый файл в папке Мои ресурсы, и я пытаюсь читать, что с помощью класса Scanner, однако я получаю ошибка. java.io.FileNotFoundException: \ resources \ gen1pokemon.txt (система не может найти указанный путь) Исключение из потока «main»

Любые идеи, что может быть причиной этого? Я огляделся и попробовал поставить ссылку «class.getResource (« имя файла »), но я также получил сообщение об ошибке при объявлении файла.

ответ

0

Вы попробовали /src/resources/gen1Pokemon.txt?

Пути могут быть немного сложными, попробуйте разные версии в зависимости от структуры проекта.

1

Ресурсы приложения станут частью встроенных ресурсов к моменту развертывания, поэтому разумно начать доступ к ним, как если бы они были, прямо сейчас. должен быть доступен по URL, а не по файлу. См. info. page for embedded resource, как формировать URL-адрес.

Чтобы использовать URL-адрес в сканере, get an input stream from it, используйте new Scanner(InputStream).

+0

вход = новый сканер (Test.class.getResourceAsStream ("/ resources/gen1pokemon.txt")); Выполнение этого исправлено, спасибо, но теперь я получаю исключение нулевого указателя, посмотрев на код, вы могли бы выяснить, что может быть причиной этого? –

+0

Обновите ** вопрос **, чтобы показать текущий код, и обратите внимание при этом: единственная пустая строка пробела в исходном коде - это все, что требуется * когда-либо *. Пустые строки после '{' или before '}' также типично избыточны. –