Arrayliste in RandomAccesFile speichern

  • Themenstarter Themenstarter Joernfred
  • Beginndatum Beginndatum
J

Joernfred

Gast
Hallo zusammen,

da ich bis jetzt nur gutes über dieses Forum gehört habe, dachte ich ich wende mich auch mal mit meinem Problem an euch:

Und zwar möchte ich den Inhalt einer Arrayliste in eine RandomAccessFile Schreiben und die Arraylist dannach leeren.

Java:
void randomAccessZeug()
	{
		try
		{
		RandomAccessFile file = new RandomAccessFile("Personen.txt", "rw");
		

                file.seek(0);
		

		file.write(pobj.puffer); //pobj ist ein Objekt der Klasse Person in der sich die Arrayliste "puffer" befindet

		
		//ANSCHLIEßEND ARRAYLIST leeren
		
		
		}
		catch(FileNotFoundException fnfex)
		{
			System.out.println(fnfex.getMessage());
		}
		catch(IOException ioex)
		{
			System.out.println(ioex.getMessage());
		}

Und eben mit file.write(blabla) funktioniert es ja nicht , da write keine Arraylist annimmt.

Irgendwelche Denkanstöße vielleicht? Komme gerade nicht weiter 🙂
 
Okay vllt erst einmal ein paar andere Fragen, vllt. lässt sich das alles etwas anders machen:

- wieso willst du unbedingt RandomAccessFile verwenden?
- was genau hast du vor? Was willst du erreichen?
- was ist in der ArrayList gepeichert?
 
Ja gut vielleicht falsch ausgedrückt, ich will sie nicht verwenden, ich MUSS sie verwenden. Vorgabe vom Prof -.-

In der Arraylist sind mehrere Strings gespeichert (name, vorname, ort,....) und eben die Inhalte dieser Strings sollen in das RandomAccesFile geschrieben werden.

Die Arraylist dient eigentl nur als Puffer, sodass man mehrere Namen und Vornamen eingeben kann und erst ganz am Schluss den kompletten Inhalt in das RandomAccessFile schreibt.

Verstehst du jetzt was ich vorhabe?
 
Mhm, finde ich etwas merkwürdig. Wenn du schon eine Klasse Person verwendest, wieso wird dort denn nicht name,vorname etc. gehalten? Dann hätte man eine ArrayList von Personen-Objekten, was sich meiner Meinung nach schöner anhört 🙂
Aber okay, wenn da wirklich Strings drin sind, könntest du ja dennoch über die Liste iterieren/laufen und die Strings in die Datei schreiben... es gibt neben write() ja auch noch andere Methoden in RandomAccessFile.
 
Java:
for (int x =0; x<pobj.puffer.size();x++)
		{
			String dateiString =pobj.puffer.get(x);
			
			
			file.writeChars(dateiString);
		}

So jetzt dann ? komischerweise bleibt die Datei leer -.-
 
ja tue ich. folgender code:
Java:
void randomAccessZeug()
	{
		try
		{
		RandomAccessFile file = new RandomAccessFile("Personen.txt", "rw");
		
		//HIER DIE ARRAYLIST REINSCHREIBEN indem Inhalt in String geschrieben wird
		for (int x =0; x<pobj.puffer.size();x++)
		{
			String dateiString = pobj.puffer.get(x);
			System.out.println("DATEI STRING:"+dateiString);
			file.writeBytes(dateiString);			
			
		}	
		
		
		file.seek(0);
		//ANSCHLIEßEND ARRAYLIST leeren durch clear() Methode
		file.close();
		pobj.puffer.clear();
		
		
		
		}
 
Ahh nee hat sich geklärt habs hingekriegt, das Objekt war leer 😉

Danke für die Hilfe.
 

Neue Themen


Zurück
Oben