Hallo,
ich habe ein Array mit Objekten gegeben, die in eine Datei geschrieben werden sollen.
Wie man das mit Streams für Binäre Daten macht, habe ich rausgefunden.
Ich soll die Objekte aber noch mit Hilfe von Reader/ Writer in eine Datei schreiben bzw. daraus lesen.
Ich habe aber folendes Verständnisproblem:
Der Writer schreibt doch alles als Text d.h. Chars in die Datei. Wie soll ich damit dann ein Array mti Objekten in einer Datei sichern und mit Hilfe der Datei das Array mit den Objekten wieder ein lesen?
Habe mal folgenden Code geschrieben. Ich schreibe dabei alle MemberVariablen des Objekt in die Datei und lese sie wieder ein und gebe sie auf dem Bildschirm aus.
Das Array mit den Objekten habe ich so aber ja nicht erzeugt. Geht das überhaupt?
ich habe ein Array mit Objekten gegeben, die in eine Datei geschrieben werden sollen.
Wie man das mit Streams für Binäre Daten macht, habe ich rausgefunden.
Ich soll die Objekte aber noch mit Hilfe von Reader/ Writer in eine Datei schreiben bzw. daraus lesen.
Ich habe aber folendes Verständnisproblem:
Der Writer schreibt doch alles als Text d.h. Chars in die Datei. Wie soll ich damit dann ein Array mti Objekten in einer Datei sichern und mit Hilfe der Datei das Array mit den Objekten wieder ein lesen?
Habe mal folgenden Code geschrieben. Ich schreibe dabei alle MemberVariablen des Objekt in die Datei und lese sie wieder ein und gebe sie auf dem Bildschirm aus.
Das Array mit den Objekten habe ich so aber ja nicht erzeugt. Geht das überhaupt?
Java:
void writeStudentsPrintFile(String fileName) {
try (FileOutputStream fos = new FileOutputStream(fileName); //Schreibt in Datei (siehe Folie 131)
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8"); //Codiert
BufferedWriter bw = new BufferedWriter(osw)) { //Puffert
for (int i = 0; i < students.length; i++) { //Läuft alle Student-Objekte im Array ab
osw.write(students[i].name + students[i].matriculationNo + students[i].inInternship); //speichert nacheinander für jedes Studenten-Objekt den Wert der Member als String
osw.write("...");
}
} catch (IOException ioex) { //Abfangen von Fehlern
ioex.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
}
}
//b: Lesen
void readStudentsPrintFile(String fileName) {
try (FileInputStream fis = new FileInputStream(fileName); //Schreibt in Datei (siehe Folie 131)
InputStreamReader isw = new InputStreamReader(fis, "UTF-8"); //Codiert
BufferedReader br = new BufferedReader(isw)) { //Puffert
int charCount = 0;
char[] buffer = new char[20];
while (charCount != -1) { //Ließt so lange aud Datei, bis diese leer (Rückgabewert von "isw.read(buffer)" = -1)
charCount = isw.read(buffer); //Schreibt gelesene Buchstaben in buffer
for(char s : buffer) { //Gibt Buchstaben in Buffer aus
System.out.print(s);
}
}
} catch (IOException ioex) { //Abfangen von Fehlern
ioex.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
}
}