Problem mit Dateien auslesen. :( *solved*

Allgemeine Themen rund um Java

Moderator: wegus

Antworten
Cesar Moriarty
Beiträge: 3
Registriert: 14.01.2017, 19:53

Problem mit Dateien auslesen. :( *solved*

Beitrag von Cesar Moriarty » 14.01.2017, 19:59

Hallo Leute,
ich habe mein erstes, kleines Programm fertig und hoffe ihr könnt mir bei meinem Problem weiterhelfen.
Mein Problem:
Es soll bei einem Tower Defence Spiel das Level ausgelesen werden:
Der Befehl dazu:

save.loadsave(new File(getClass().getResource("Mission"+level+".matu").getFile()));

Und so sieht die Class save aus:

package frame;
import java.io.*;
import java.util.*;


public class Save {

public void loadsave(File loadPath){
try {
Scanner loadScanner= new Scanner(loadPath);
while(loadScanner.hasNext()){
Screen.killstowin = loadScanner.nextInt();
for(int y=0;y<Screen.room.Block.length;y++){
for(int x=0;x<Screen.room.Block[0].length;x++){
Screen.room.Block[y][x].groundid = loadScanner.nextInt();
}
}
for(int y=0;y<Screen.room.Block.length;y++){
for(int x=0;x<Screen.room.Block[0].length;x++){
Screen.room.Block[y][x].airid = loadScanner.nextInt();

}
}
}
loadScanner.close();
} catch (FileNotFoundException ex) {
}
}

}

Wenn ich das Programm in Netbeans starte, funktioniert alles wie geschmiert.
Wandel ich es in eine Jar um, wir das "Level" nicht geladen.
Hat einer eine Idee?
Habt Nachsicht da es mein erstes Programm nach einem Tutorial ist. :)

Vielen Dank im Vorraus.
Zuletzt geändert von Cesar Moriarty am 16.01.2017, 12:43, insgesamt 1-mal geändert.

Benutzeravatar
nigjo
Beiträge: 605
Registriert: 08.09.2009, 09:43
Wohnort: Aachen
Kontaktdaten:

Re: Problem mit Dateien auslesen. :(

Beitrag von nigjo » 16.01.2017, 08:03

Moin

Wenn du dein Programm in eine JAR Datei packst, gibt es für deine Dateien kein "File"-Objekt mehr. Diese können nur für Dateien direkt in deinem Dateisystem erstellt werden. Beim Debuggen in NetBeans liegen diese Dateien im "build/classes" Ordner deines Projekts; darum funktioniert das dort.

Du solltest aus Ressourcen, die du per class.getResource ermittelst niemals versuchen ein File zu machen. Hier musst du immer mit einem InputStream arbeiten:

Code: Alles auswählen

InputStream ressourceStream = getClass().getResourceAsStream(...);
save.loadsave(ressourceStream);

[...]

public void loadsave(InputStream loadStream){
try(Scanner loadScanner = new Scanner(loadStream)) {
  while(....){}
}
Gruß
Jens
Man sollte seine Werkzeuge kennen. Ansonsten haut man sich mit dem Hammer nur auf die Finger.

--
NetBeans Certified Engineer - Java Getriebe

Cesar Moriarty
Beiträge: 3
Registriert: 14.01.2017, 19:53

Re: Problem mit Dateien auslesen. :(

Beitrag von Cesar Moriarty » 16.01.2017, 11:11

Vielen Dank. Ich korrigiere es sofort wenn ich zuhause bin.

Cesar Moriarty
Beiträge: 3
Registriert: 14.01.2017, 19:53

Re: Problem mit Dateien auslesen. :(

Beitrag von Cesar Moriarty » 16.01.2017, 12:42

Es hat funktioniert. Vielen, vielen Dank!

Antworten