Java ME: Durch txt-Datei neue txt-Datei öffnen

Flopro

Grünschnabel
Hi Leute,

ich habe ein kleines Problem und wäre um eure Hilfe sehr dankbar.

Mein Programm soll aufgrund der in einer txt-Datei gespeicherten Wörter eine Liste erstellen -bis hierher funktioniert es - und durch auswählen eines Elementes eine neue Liste aus einer 2. txt-Datei erstellen, wobei der Name der 2. txt-Datei der des ausgewählten Elements ist.

Das Problem ist jedoch, dass zwar der Text des ausgewählten Elementes als String ausgegeben und verglichen werden kann, jedoch sobald es als Pfad verwendet wird, nicht mehr funktioniert.

Würde mich freuen, wenn mir jemand weiterhelfen kann. Vielen Dank
Falls jemand genauere Angaben braucht einfach fragen.
Flo

P.S. Hier unten ist mein Quellcode.

Code:
import java.io.*;
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;

public class Sportapp extends MIDlet implements CommandListener
{
    private Display display;
    private List Liste;
    private String name;

    public Sportapp()
    {
        display = Display.getDisplay(this);
        
    }

    public void startApp()
    {
        loadlist("Auswahl");        
    }

    public void pauseApp()
    {

    }

    public void destroyApp(boolean unconditional)
    {

    }

    public void commandAction(Command command, Displayable displayable){
        if (command == List.SELECT_COMMAND) {
            loadlist(Liste.getString(Liste.getSelectedIndex()));
        }
    }

    

    public void loadlist(String name){
        DataInputStream dis = new DataInputStream(getClass().getResourceAsStream("/"+name+".txt"));
        StringBuffer sb = new StringBuffer();
        Liste = new List(name, List.IMPLICIT);
        Liste.setCommandListener(this);
        int i=0 ;
       
        try{
            while ((i = dis.read()) > -1)
            { 
                char ch = (char)i;
                if (ch == '\n')
                {   Liste.append(sb.toString(),null);
                    
                    sb.delete(0,sb.length());
                 
                }       
                else 
                    sb.append(ch);
            }

            dis.close(); 

        }
        catch (IOException e) { 

        }
        display.setCurrent(Liste);       
    }
}
 
Zuletzt bearbeitet:
Hi Flopro,
hast du dir mal den Pfad ausgeben lassen? Vielleicht wird der Pfad nicht richtig zusammen gebaut.
Was auch noch sein kann ist, dass im String name ein Leerzeichen steht also hinter dem Element.
 
Hi cc1990,
vielen Dank, dass du mich darauf aufmerksam gemacht hast, dass es an tippfehlern in meiner txt-Datei liegen könnte. Jedoch waren dort keine Fehler und wenn ich mir die Zusammensetzung als String ausgeben lasse, erhalte ich den richtigen pfad.
Also leider keine Lösung des Problems.
 
Hi Leute,
ich habe mich nochmals mit dem Vergleich, welchen ich oben beschrieben habe auseinander gesetzt. Auch diesen bringe ich nicht mehr zustande. D.h., dass wenn ich den Text, aus der Liste mir ausgeben lasse und vergleiche mit dem was zu sehen ist, dann behauptet Java, dass dies unterschiedlich sei, obwohl für das Auge das selbe dasteht.
Gruß Flo
 
Vergleichst du mit '==' ? Das vergleicht nur Referenzen, d.h. ist nur true, wenn beide Referenzen auf das gleiche Objekt weisen. Generell ist meistens .equals() besser, dazu muss aber die .equals-Methode in den Klassen des Objekts überschrieben sein.
 
Ich mache das mit ".equals". also sollte es funktionieren.
Aber vielen Dank für die Erinnerung, da es bei mir hieran schon öfters gescheitert ist.

Hier meine überschriebene CommandAction, mit der ich den Vergleich ausführe:

Code:
    public void commandAction(Command command, Displayable displayable){
        if (Liste.getString(Liste.getSelectedIndex()).equals("Blau")) {
            Alert alert =new Alert(Liste.getString(Liste.getSelectedIndex()));
            display.setCurrent(alert);    
        }
    }
 
Ist zwar nicht ganz so schön, aber wenn du es mit nem String und nem Filereader machst müsste das ganze Funktionieren, wenn ich Zeit hab schreib ich den Code nacher noch zusammen und poste ihn.
 
Servus Funresort.

Wenn deine Variante funktioniert, dann wäre das echt stark, dann müsste ich nur die entsprechenden io-Klassen aus Java SE in mein Java ME Projekt kopieren, dann müsste Java ME auch damit umgehen können.
Wäre sehr cool, wenn du mir den Code schicken könntest, dann müsste ich mich nicht so lange mit den unbekannten Klassen auseinandersetzen.

Flo
 
Zurück