что не так с этим сканером? - PullRequest
0 голосов
/ 11 декабря 2011

Я пытаюсь заставить сканер сканировать текстовый файл, когда он у меня сканирует всего 6 элементов (элемент до и после "="), он работает, когда у меня сканируется больше, он ломается. После сканирования я хочу вернуть значения в основной класс.

public class mainClass {

public static void main(String[]args) throws FileNotFoundException {
            load loadery = new load("resources/monsters/human/humanSerf.txt");
            load.loader();
            String returned= loadery.retrn();
            System.out.println(returned);

     }
}

Класс сканера:

public class load {
static String name, value,name1,value1,name2, value2,name3,value3,name4,value4,name5,value5;
  public static void loader(String... aArgs) throws FileNotFoundException {
    load parser = new load("resources/monsters/human/humanSerf.txt");
    parser.processLineByLine();
  }

  public load(String aFileName){
    fFile = new File(aFileName);  
  }


  public final void processLineByLine() throws FileNotFoundException {

    Scanner scanner = new Scanner(new FileReader(fFile));
    try {

        scanner.useDelimiter("=");

           name = scanner.next();
           value = scanner.next();
           name1 = scanner.next();
           value1 = scanner.next();
           name2 = scanner.next();
           value2 = scanner.next();
           name3 = scanner.next();
           value3 = scanner.next();
           name4 = scanner.next();
           value4 = scanner.next();
           name5 = scanner.next();
           value5 = scanner.next();

      ;

    }
    finally {

      scanner.close();
    }


     }


      // PRIVATE 
      private final File fFile;


      public static String retrn(){
      return name+"="+ value+"   "+name1+"="+ value1+"   "+name2+"="+ value2+"   "+name3+"="+ value3+"   "+name4+"="+ value4+"   "+name5+"="+ value5;
      }
      }

Текстовый файл:

symbol=HS
strength=15
agility=13
constitution=7
wisdom=9
intelligence=5

Что я могу сделать, чтобы это исправить?

Это ошибки

Exception in thread "main" java.util.NoSuchElementException

at java.util.Scanner.throwFor(Scanner.java:838)

at java.util.Scanner.next(Scanner.java:1347)

at load.processLineByLine(load.java:32)

at load.loader(load.java:8)

at mainClass.main(mainClass.java:9)

1 Ответ

0 голосов
/ 11 декабря 2011

попробуйте использовать

scanner.useDelimiter( Pattern.compile("[\\r\\n= ]+") );
...