Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
hi leute
also ich hab ein M3U-Format Textdatei
beispiel:
# My best songs
Alternative\Band – Song.mp3
Classical\Other Band - New Song.mp3
Stuff.mp3
D:\More Music\Foo.mp3
..\Other Music\Bar.mp3
Ich will jetzt die pathnames auslesen. Mit Scanner lese ich die datei. Zeilen mit # sind kommentarzeilen und sollen übersprungen werden, gleiches gilt für leerzeilen. Meine Idee ist es jetzt. Zeile für Zeile for zu gehen. Ich möchte die Zeile in der ich momentan bin in einen String einfügen und den prüfen ob er kein # enthält oder eine leere Zeile ist.
Java:
public void load(String pathname){
try {
Scanner scan= new Scanner(new File (pathname));
while(scan.hasNextLine()){
String neu="";
neu= //aber hier komm ich nicht mehr weiter
scan.close();
}
1. Wenn ich eine Programmiersprache nutzen würde die ich noch nicht kenne und ich benutze [c]scan.hasNextLine()[/c], dann würde ich nach sowas wie [c]scan.getNextLine()[/c] oder [c]scan.nextLine()[/c] Ausschau halten. Irgendwie logisch oder?
2. Es gibt im Netz geschätzte eine Million Beispiele wie man eine Textdatei mit Java einließt. Ist es wirklich so schwer mal vorher Google oder Forum-Suche zu benutzen?
Ich würde dann eher eine XML nehmen, da diese schön Semantik abbildet die eventuell gebracuht wird.
XML kann man mit Properties auslesen oder wenn man mehr funktionen braucht dann gerne mit SAX oder JDOM. Es gibt noch diverse andere, aber ist heutzutage angebracht im gegensatz zu einer Textdatei.
Textdateien benutzte ich nicht mehr
Nur bei caching!
ich kann irgendwie nix auslesen weis aber nicht warum
wenn die zeile mit# beginnt oder leer ist soll sie übersprungen werden und nicht hinzugefügt werden
bekomm aber immer ne fehlermeldung
Java:
public void loadFromM3U(String pathname){
this.clear(); // Liste wird vor beginn geleert,damit sie neu überschrieben werden kann
try {
Scanner scan= new Scanner(new File (pathname));
while(scan.hasNextLine()){
//schleife wirdNextLine = false ist, also
//wenn es keine nächste zeile in der Textdatei gibt
String neu="";
neu =scan.nextLine(); //schreibt in den String die Zeile rein
System.out.println("Line:"+neu);
if(neu.isEmpty()==true||neu.startsWith("#")==true){//prüft ob zeile leer oder mit # beginnt
neu=scan.nextLine();
}
else{
//fügt element zur Liste
this.add(AudioFileFactory.getInstance(neu));
System.out.println("Line2:");
}
Da du uns die Exception nicht nennst... Ich würde raten, dass es an Zeile 14 des oben geposteten Programms liegt. Im Gegensatz zu der von mir geposteten Version der "Kommentar"-Abfrage wird da ein [c]nextLine()[/c] aufgerufen, ohne zuvor zu überprüfen, ob es denn auch eine folgende Zeile gibt.