Wie schreibe ich ein Array in eine Datei und lese dieses wieder aus

V4mp1r3

Grünschnabel
generell hab ich ein array dessen inhalt in eine textdatei exportiert werden soll (zur speicherung)
diese textdatei möchte ich dann in einem anderen programm wieder öffnen und in ein array einbinden

ich würde mich über jeden tipp freuen

mfg stefan
 
N'Abend,
das geht prinzipiell über den BufferdReader und den FileWriter. Du müsstest da schon selbst anfangen und/oder konkreter werden. Infos und Beispiele zum Thema gibt es sicherlich in der Java Insel und bei http://www.javabuch.de
 
Stichwort "serialize" müsste dich weiter bringen.. Das wandelt versch. Datentypen in Strings um und zurück. Aber wie das in Java geht weis ich nicht!
 
Hallo!

Schau mal hier:
Code:
/*
 * Created on 16.02.2005@22:43:29
 *
 * TODO Licence info
 */
package de.tutorials;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

/**
 * @author Administrator
 *
 * TODO Explain me
 */
public class ReadWriteExample {

    public static void main(String[] args) {
        String[] strA = { "A", "B", "C" };
        Serializable[] serializables = strA;

        String theFile = "c:/backup.dat";

        try {
            ObjectOutputStream oos = new ObjectOutputStream(
                    new FileOutputStream(theFile));

            oos.writeObject(serializables);
            oos.close();

            ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
                    theFile));
            String[] strB = (String[]) ois.readObject();
            ois.close();

            for (int i = 0; i < strB.length; i++) {
                System.out.println(strB[i]);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Gruß Tom
 
ja genau
soweit funktioniert das....
ich hab ein anderes Problem... (ein neues :()

und zwar habe ich ein riesiges Array (800*600) und dementsprechend habe ich 2 for schleifen um die Ausgabe gepackt...

allerdings überschreibt sich der Wert immer wieder (logischerweise weil ja nichts angegeben ist)

gibt es irgendeinen weg ihm zu sagen das er bei jedem durchlauf die datei offen lassen und die neuen werte einfach hinten dran hengen soll?
hier ist der Output teil meines Programms:
Code:
try {
	ObjectOutputStream oos = new ObjectOutputStream(
	new FileOutputStream(datei));
	for(int i=0;i<=1;i++)
	{
		for(int j=0;j<=10;j++)
		{
			String str = Float.toString(helligkeit[i][i]);
			Serializable serializables = str;
			System.out.println(str);
				
	            oos.writeObject(serializables);
	            
		}
	}
	oos.close();
	}
	catch (Exception e) 
                {
	e.printStackTrace();
	}

so wie sie es hier sehen geht es nicht, auch wenn ich den Output erst nach den Forschleifen schließe...

ich hab jetzt schon 3 dicke Java bücher durchgeguckt und nix gefunden... und das internet ist da auch wenig ergiebig.....

hoffe auf hilfe

mfg stefan
 
Zuletzt bearbeitet:
ok
also ich habs mir gerade nochmal angeschaut
und es scheint so als ob er das alles reinschreibt, aber der Reader nur den ersten wert liest

Code:
public class ArrayReader {
	public static void main(String args[]) {
		String datei = "3D_Box_001_112.dat";
		try 
		{
			ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
			datei));
			String strB = (String) ois.readObject();
			ois.close();
			
			System.out.println(strB);

				
		} 
		catch (Exception e) 
		{
			e.printStackTrace();
		}
}
}

da ich aber generell zu readObject() nich viel gefunden hab, weiss ich auch nicht was ich da in die Klammern schreiben muss, damit der die Objecte (float Zahlen in String umgewandelt) alle wieder einliest.


Falls ich ein bisschen Aufdringlich bin, tut mir das leid ;) nur ich wollte das Programm schon längst fertig haben (es kommen aber immer wieder fehler auf, weil ich erst seit 2 wochen java mache....)

mfg stefan
 
Zurück