Pliki .jar, dostęp to plików z danymi

0

Witam ;]
Mam pewien problem, siedzę już nad tym tydzień, przejrzałem chyba wszystkie tematy dotyczące tego i nadal nie mogę pojąć żeby program działał. Wiem, że istnieje już podobny temat ale nic mi nie wyjaśnił więc proszę o pomoc..
Otóż, stworzyłem sobie plik np proba.jar. Zawarte tam są wszystkie biblioteki i plik do którego się chce dostać (jednostka_organizacyjna.db) mam tam dane które chce odczytać. Kombinowałem już w ten sposób:

  //ustalanie sciezki
            URL url1 = this.getClass().getResource("jednostka_organizacyjna.db");
            sciezka = url1.getFile();
            //odczyt z pliku
            FileReader in1 = null;
            in1 = new FileReader(sciezka);
            Scanner src = new Scanner(in1);
            src.useDelimiter("\n");
            for (int g = 0; src.hasNext(); g++) {
                String wiersz = src.next();
                if (g == 0) {
                    wiersz = null;
                } else {
                    Scanner srcx = new Scanner(wiersz.trim());
                    srcx.useDelimiter(";");
                    jednostka_organizacyjna jo = new jednostka_organizacyjna();
                    for (int k = 0; srcx.hasNext(); k++) {
                        String Komorka = "";
                        Komorka += srcx.next();
                        switch (k) {
                            case 0:
                                jo.setid_jednostki(Komorka);
                                break;
                            case 1:
                                jo.setnazwa_jednostki(Komorka);
                                break;
                            case 2:
                                jo.setskrot(Komorka);
                                break;
                        }
                    }
                    //dodanie do kolekcji
                    a_jednostka_organizacyjna.add(jo);
                }
            }

odpalam proba.jar i nie laduje mi danych, sciezke podaje mi taką: file:/C:/Users/Piotr/Documents/NetBeansProjects/proba/dist/proba.jar!/proba/jednostka_organizacyjna.db
niby sciezka jest dobra ale nic sie nie dzieje... próbowałem substringiem usunac wyrazenie (file:)...nic nie dalo
kombinowałem już też z otwarciem pliku proba.jar:

  JarFile jarFile = new JarFile("proba.jar");
            Enumeration entries = jarFile.entries();
           String sciezka = "";
            while (entries.hasMoreElements()) {
                ZipEntry entry = (ZipEntry) entries.nextElement();
                if(entry.getName().equals("jednostka_organizacyjna.db")){
                   sciezka = entry.getName();
                }  
            } 

również bez sukcesu...

nie mam już pomysłu..proszę o Waszą pomoc ;]

0

A getClass().getResourceAsStream() (Scanner ma też konstruktor z InputStream)?

0

nie używam tej metody..tz .getResourceAsStream()...

0

jest!! mam;] banalne rozwiązanie... wystarczy zrobić:

   InputStream stream = Main.class.getResourceAsStream("jednostka_organizacyjna.db");
            Scanner src = new Scanner(stream);
            src.useDelimiter("\n");
            for (int g = 0; src.hasNext(); g++) {
                String wiersz = src.next();
                if (g == 0) {
                    wiersz = null;
                } else {
                    Scanner srcx = new Scanner(wiersz.trim());
                    srcx.useDelimiter(";");
                    jednostka_organizacyjna jo = new jednostka_organizacyjna();
                    for (int k = 0; srcx.hasNext(); k++) {
                        String Komorka = "";
                        Komorka += srcx.next();
                        switch (k) {
                            case 0:
                                jo.setid_jednostki(Komorka);
                                break;
                            case 1:
                                jo.setnazwa_jednostki(Komorka);
                                break;
                            case 2:
                                jo.setskrot(Komorka);
                                break;
                        }
                    }
                    //dodanie do kolekcji
                    a_jednostka_organizacyjna.add(jo);
                }
            }

1 użytkowników online, w tym zalogowanych: 0, gości: 1