SMoeller
Mitglied
Hallo,
ich weiß bei meinem Programm nicht weiter. Es soll 3 Strings in eine Datei schreiben und diese dann wieder ausgeben. Das ganze soll mit der Klasse RandomAccessFile funktionieren. Allerdings überschreibt mein Programm die vorherigen Einträge immer oder es liegt daran, dass ich zu Anfang der Methode immer ein neues RandomAccessFile-Objekt erstelle. Da ich am Montag eine Klausur über dieses Thema schreibe, wäre ich über schnelle Hilfe sehr dankbar.
ich weiß bei meinem Programm nicht weiter. Es soll 3 Strings in eine Datei schreiben und diese dann wieder ausgeben. Das ganze soll mit der Klasse RandomAccessFile funktionieren. Allerdings überschreibt mein Programm die vorherigen Einträge immer oder es liegt daran, dass ich zu Anfang der Methode immer ein neues RandomAccessFile-Objekt erstelle. Da ich am Montag eine Klausur über dieses Thema schreibe, wäre ich über schnelle Hilfe sehr dankbar.
Code:
/*
* Created on 22.11.2006
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
import java.io.*;
/**
* @author Sascha Möller
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class RAF
{
private final int MAXL = 40;
private static RandomAccessFile file;
public void schreiben(String s)
{
try
{
file = new RandomAccessFile("Textdatei.doc", "rw");
long pos = file.getFilePointer();
file.writeUTF(s);
file.seek(pos + MAXL);
}
catch(FileNotFoundException fnfe)
{
fnfe.getMessage();
}
catch(IOException ioe)
{
ioe.getMessage();
}
}
public StringBuffer lesen(int index)
{
StringBuffer sb = new StringBuffer();
try
{
file = new RandomAccessFile("Textdatei.doc", "r");
file.seek(index * MAXL);
for(int i=0; i<=MAXL; i++)
{
sb.append(file.readUTF());
}
}
catch(FileNotFoundException fnfe)
{
fnfe.printStackTrace();
}
catch(IOException ioe)
{
ioe.getMessage();
}
return sb;
}
public static void main(String[] args)
{
RAF test = new RAF();
test.schreiben("Hallo" + '\n');
test.schreiben("grüß dich" + '\n');
test.schreiben("wie gehts" + '\n');
System.out.println(test.lesen(0));
System.out.println(test.lesen(1));
System.out.println(test.lesen(2));
}
}