Filewriter schreibt Zahlen in Textdatei

LatinFavourite

Bekanntes Mitglied
Hallo,

um den Zustand meines Programmes zu speichern, schreibe ich je nach Zustand einer JComponent eine Zahl in die Textdatei. Das ganze funktioniert auch soweit. Möchte ich jetzt jedoch zusätzlich ein Leerzeichen einfügen entstehen in der gespeicherten Datei an manchen Stellen Lücken und es ist keine Zahl eingetragen. Daher macht das Einladen natürlich manchmal Probleme Das tritt aber nicht immer auf. Hier der Code zum Speichern in eine Textdatei. Hat jemand eine Idee, was da falsch läuft.

Java:
public void saveMap(File fileToSave, boolean saveAsPng){
		
		
		if(!saveAsPng){
			
			try{
				FileWriter writer = new FileWriter(fileToSave);
				BufferedWriter bw = new BufferedWriter(writer);
										
				Integer w = width;
				Integer h = height;
			
				bw.write(w.toString());
				bw.newLine();
				bw.write(h.toString());
				bw.newLine();
				
				for(int i=0; i<height; ++i){
					for(int j=0; j<width; ++j){
						Tile temp = tiles[j][i];
						
						if(temp.isPressed()){
							if(temp.getColor() == Color.red){
								bw.write("1 ");
							}
						}else{
							bw.write("0 ");
						}
					}
					bw.newLine();
				}
				
				bw.close();
				
				
			}catch(IOException e){
				
			}
			
		}
 
Zuletzt bearbeitet:
Du hast eine verschachtelte if-Bedingung ohne else Zweig in der zweiten Ebene. Daher kann es passieren, dass zwar temp.isPressed() true zurückgibt, temp.getColor() == Color.red aber false zurückgibt und so passiert nichts.
Außerdem solltest du mit equals arbeiten. Also temp.getColor().equals(Color.red).
 

Zurück
Oben