Java NoSuchElementException при использовании resourceloader для загрузки текстового файла - PullRequest
0 голосов
/ 15 мая 2018

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

все работает отлично, если я удалил время (f.hasnext () {....} Я не могу понять, что происходит не так. Я пытаюсь загрузить текстовый файл в jar-файл, поэтому я читаю его через inputtream (нажмите здесь, чтобы открыть изображение)

это текстовый файл, который я загружаю

main

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;

 public class Main {

 public static void main(String[] args) throws FileNotFoundException {

      ArrayList<morse> mkey = new ArrayList<>();
      encription e = new encription();

            morse.load(mkey);


 }


}

ResourceLoader

 import java.io.IOException;
    import java.io.InputStream;

    final public class ResourceLoader {

    static ResourceLoader rl = new ResourceLoader();

    public static InputStream rload(String path) {
        InputStream input = rl.getClass().getResourceAsStream(path);

        return input;
    }
    }

morse

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
final public class morse {

    String c;
    String symbol;
     public static void  load(ArrayList<morse> mkey) throws FileNotFoundException
     {      
         Scanner f = new Scanner( ResourceLoader.rload("morse key.txt"));
         int i=0;
        while(f.hasNext()) {
            morse temp =new morse();

            temp.c =f.next();
            temp.symbol = f.n;
            mkey.add(temp);
            System.out.println(mkey.get(i).c  );
            //f.nextLine();
            i++;

        }
         f.close();      
     }

}

textfile

0 ----- 1 .---- 2 ..--- 3 ...-- 4 ....- 5 ..... 6-.... 7 --... 8 --- .. 9 ----. A .- b -... c -.-. D - .. e. F ..-. G -. h .... i .. j .--- k -.- l .- .. m - n -. o --- p .--. q --.- r .-. s ... t - u ..- v ...- w .-- x -..- y -.-- z - ..

1 Ответ

0 голосов
/ 15 мая 2018

Как я изначально писал в комментариях, вместо того, чтобы дважды вызывать f.next (), просто прочитайте всю строку один раз и разбейте строку на temp.c и temp.symbol.

...