# speichern und laden



## gvlms (24. März 2004)

hallo leutchens!
(wie ihr vielleicht seht, bin ich neu hier! )

hab folgendes problem:
meine java-kenntnisse sind vielleicht nicht soooo besonders, dass ich hochkomplizierte programmierung verstehen könnte (schulprogrammierung). aber das sei nicht mein eigentliches problem, nur ein hinweis. 
wir sollen ein schachprogramm erstellen. speichern der spielzüge ist schon möglich (in eine textdatei) habe aber probleme, diese spielzüge wieder zu laden und dann die figuren auf ihre letzte position hinzustellen...

könnt ihr mir vielleicht helfen? hab mit FileInputStream und FileOutputSream gearbeitet (wie gesagt: schulprogrammierung)

danke im vorraus


----------



## Thomas Darimont (24. März 2004)

Hallo!

Wenn du genau sagst, wobei du hilfe brauchst bekommst du sie auch ...

Gruß Tom


----------



## gvlms (24. März 2004)

ich stell mal die button-befehle  von der klasse oberfläche rein:
----------------------------------------------------------

```
import java.awt.*;
import java.awt.event.*;
import java.io.*;

		public void actionPerformed(ActionEvent e) {
		
			Graphics g=getGraphics();
	
			if (e.getActionCommand().equals("Rückgängig")){
				System.out.println("rückgängig");
			}//if
			if (e.getActionCommand().equals("Neues Spiel")){
			
				System.out.println("neues Spiel");
				bild.repaint();															//zeichnet das Spielbrett neu; gespeicherter Spielstand wird nicht gelöscht
		
			}//if

			if (e.getActionCommand().equals("Speichern")){
				System.out.println("speichern");
		  	dateiname=tf.getText();
		
				try{
					PrintStream out=new PrintStream(new FileOutputStream(dateiname+".txt"));
					out.println(bild.getZuege());
				}
				catch(Exception ex){}
				tf.setText("");

		}//if
		
		
		
		if (e.getActionCommand().equals("Laden")){
			System.out.println("laden");
		
			try{
				DataInputStream in=new DataInputStream(new FileInputStream(dateiname+".txt"));
				String line=null;
    		String[] arr=new String[bild.getZugzahl()];		//Array ist so lang, wie die Anzahl Spielzüge
	    	i=0;
 	   
 	    		while((line=in.readLine())!=null){
 	     			arr[i]=line;
 	     			System.out.println(arr[i]);
 	    		}
 	    		in.close();
 	   		}
 	   		catch(Exception ex){}
 	   		
		};//if
		
		

		
	}//actionPerformed
```

-----------------------------------------------------------------------------

es gibt noch ne klasse bild. dort sind die ganzen befehle für das spiel drin. 
soviel dazu. ich hatte nu die frage, wie ich die figuren, nachdem ich den Spielzug wieder geladen habe, wieder auf die position bekomme, die ich gerade geladen habe.

vielleicht nicht zum thema, aber:

das betrifft die oberflächengestaltung. ich möchte in den östlichen bereich einer oberfläche buttons und eine textarea.
allerdings sollen die unabhängig von einander reingebracht werden, heißt: beide typen sollen nicht die gleiche größe haben.
das ganze wollte ich mit border- und gridlayout machen.


----------

