я использую загрузчик ресурсов для сохранения файла в jar-файл (нажмите здесь, чтобы открыть изображение)
все работает отлично, если я удалил время (f.hasnext () {....} Я не могу понять, что происходит не так. Я пытаюсь загрузить текстовый файл в jar-файл, поэтому я читаю его через inputtream (нажмите здесь, чтобы открыть изображение)
это текстовый файл, который я загружаю
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); } }
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; } }
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(); } }
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 - ..
Как я изначально писал в комментариях, вместо того, чтобы дважды вызывать f.next (), просто прочитайте всю строку один раз и разбейте строку на temp.c и temp.symbol.