Bild-Pfad wird gefunden, nicht aber Textdatei-Pfad

it_is_all

Aktives Mitglied
Hi Leute,
habe 2 Arrays, eines befülle ich mit Bild-Dateien, das andere mit Text-Dateien. Alle Dateien befinden sich in einem Ordner res (img1.jpg, img2.jpg, img3.jpg, txt1.txt, txt2.txt und txt3.txt).
Das Befüllen des Bild-Arrays klappt ohne Probleme. Beim File- bzw. Textdatei-Array schmeisst er mir ne Fehlermeldung aus: java.io.FileNotFoundException: res\txt0.txt (Das System kann den angegebenen Pfad nicht finden) [...]
Verstehe das nich :/ Hier mein Code:
Java:
    private void bildArrayBefuellen(){
        int arraylaenge = arrayindex_max + 1 - arrayindex_min;
       
        this.bild_array = new ImageIcon[arraylaenge];
        for(int i=arrayindex_min; i<=arrayindex_max; i++){
            bild_array[i] = new ImageIcon(getClass().getClassLoader().getResource("res/img"+i+".jpg"));
        }
    }
   
    private void textArrayBefuellen(){
        int arraylaenge = arrayindex_max + 1 - arrayindex_min;
       
        //Text-Array (gleiche Länge wie Bild-Array -> zu jedem Bild eine passende txt-Datei):
        this.text_array = new File[arraylaenge];
        for(int i=arrayindex_min; i<=arrayindex_max; i++){
            text_array[i] = new File("res/txt"+i+".txt");
        }
    }

Vielen Dank für eine kleine Hilfestellung im Voraus!! MFG
 
Schau dir doch die Zahlen an 😉
img1.jpg und txt1.txt gibt es, es sollen aber img0.jpg bzw. txt0.txt geladen werden.
Bei der Klasse File fliegt eine entsprechende Exception. Beim getClassLoader().getResource() wird null zurückgeliefert wenn etwas nicht gefunden wird.
 
Falls arrayindex_min den Anfangswert 0 besitzt (ist nicht erkennbar), dann ist der erste gesuchte Name txt0, in Deinem Pfad ist der erste Name jedoch txt1.
Der Anfangswert muss 1 sein.
 
Ach ich hab mich vertan, img´s wie auch txt´s fangen bei 0 an, also ich habe:
img0.jpg, img1.jpg, img2.jpg, txt0.txt, txt1.txt und txt2.txt
Unbenanfnt.jpg


Also das Problem ist nicht mit einer Index-Verschiebung gelöst 🙁 Wie gesagt klappt das Anzeigen der Bilder aus dem Array problemlos... Nur die txt-Dateien findet er nich...

Java:
java.io.FileNotFoundException: res\txt1.txt (Das System kann den angegebenen Pfad nicht finden)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.util.Scanner.<init>(Scanner.java:611)
    at keycay.StorySequenz.txtAusgebenAufLabel(StorySequenz.java:58)
    at keycay.StorySequenz.actionPerformed(StorySequenz.java:72)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6533)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6298)
    at java.awt.Container.processEvent(Container.java:2236)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2294)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
    at java.awt.Container.dispatchEventImpl(Container.java:2280)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
 
Zuletzt bearbeitet:
[Bild gelöscht]

...hier die Struktur 🙂
Die main-Methode ist in "KC.java", die Array-Befüllmethoden sind in "StorySequenz.java"...
Komisch ist halt, dass er die Bilddateien problemlos findet, nicht aber die Textdateien! Iwie muss man bei Files evtl den Pfad anders angeben oder noch Schlüsselwörter hinzufügen?
Vielen Dank schonma für Euer Bemühen 🙂
 
Zuletzt bearbeitet:
Der ClassLoader sucht anders nach Dateien, als eine einfache Pfadangabe für die Klasse "File".
Du könntest probieren über den ClassLoader auch die Textdateien zu suchen.

Java:
text_array[i] = new File(getClass().getClassLoader().getResource("res/txt"+i+".txt").toURI());
 

Zurück
Oben