Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich möchte für ein Programm eine Datei erzeugen in welche ich Daten schreiben kann und wenn das Programm das nächte mal aufgerufen wird , ich diese Daten auch wieder auslesen kann. Die Daten sind Strings für ein Wörterbuch.
ich hab schon einiges probiert, die programme zum erzeugen der Datei sowie lesen und schreiben laufen auch ohne Fehler, nur wird weder eine Datei erzeugt die ich hinterher nachdem ich das Programm geschlossen habe wiederfinde, noch kann ich etwas auslesen, noch finde ich wärend des laufenden Programmes eine Datei mit dem Namen den ich erzeugt habe. kann mir jemand helfen ?
würde vollkommen ausreichen wenn es eine Textdatei wäre die ich Zeilenweise auslesen kann.
Was für einen Writer benutzt du den zum Schreiben der Datei?
Hast du auch dran gedacht den Ausgabestrom nach dem Schreiben zu schließen?
Wenn es möglich ist vielleicht den Code bzw. Teile davon posten.
Also zum einfachen schrieben von Text-Datein müsste das hier funktionieren:
Code:
public static void createDefaultFile()
{
BufferedWriter out;
try {
out = new BufferedWriter (new FileWriter("test.txt"));
out.write("Hallo");
out.newLine();
out.write("Neue Zeile1");
out.newLine();
out.write("Neue Zeile2");
out.newLine();
out.write("Neue Zeile3");
out.newLine();
out.write("Neue Zeile4");
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
ich habs mit Objektwritern mit Streamwritern mit Bufferedwritern mit Stringwritern und Fileoutputstreams probiert
hier mal der code mit dem ich es probiert habe
Code:
String s = "Testabcx";
try{
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream( "test.txt" ) ) );
out.write( s );
out.newLine();
out.close();
}
catch(IOException e){
System.out.println("fehler");
}
[\code]
Damit hab ich es versucht, das Problem ist das ich die Datei hinterher auf meinem Recher nicht finden kann, ich hab auch versucht eine test.txt i gleichen package zu erstellen aber wenn ich das Programm dann abfahre dann ist da trotzdem nix drinn, hab auch den code von oben ausprobiert, läuft auch genau wie das von mir phne Fehler durch, nur finde ich wiederum die Datei hinterher nicht auf meinem Rechner, wo legt der die denn an? oder ist die Datei nach dem close wieder weg, so als wenn die Instanz nach Programmende auch gelöscht wird??
das hab ich mir ja auch gedacht, allerdins ist in dem Package keine Datei mit dem Namen, und wenn ich meine gesammte Festplatte durchsuche werde ich auch nicht fündig, wie kann ich denn einen expliziten Pfad angeben, dann probier ich das mal, einfach
Code:
File a = new File("c:\test.txt");
[\code]
oder funktioniert das nicht
File a = new File("C:\\testaa.txt");
String s = "Testabcx";
try{
FileWriter out = new FileWriter("testaa.txt");
out.write( s );
out.close();
}
catch(IOException e){
System.out.println("fehler");
}
[\code]
dannach erhalte ich eine Nachricht, das Datei schreiben beendet wurde, dennoch gibt es diese Datei nicht ??
je nach dem welche daten du speichern möchtest, würde ich mir überlegen
komplette Objekte wegzuschreiben, die du dann auch so wieder auslesen kannst.
Die Objekte würde ich vorher in einen Vector packen um bei 100 Objekten nicht
100 Schreibvörgänge auszulösen. So kann man auch unterschiedlich viele Objekte
bei jedem Vorgang schreiben.
So was in der Art:
Code:
public void schreiben(Object o)
{
try
{
p.writeObject(o);
}
catch(IOException e)
{
System.out.println(e);
}
}
// Aufruf
Person p = new Person();
p.SetVorname(din.readLine());
vector.addElement(p);
ds.schreiben(vector);
ds.schliessen();
import java.io.*;
public class Datei1 {
public static void main(final String[] args) {
File a = new File("testaa.txt");
String s = "Testabcx";
try{
FileWriter out = new FileWriter("c:\\testaa.txt");
out.write( s );
out.close();
}
catch(IOException e){
System.out.println("fehler");
}
}
}
also das ganze soll nen wörterbuch mit verketteten Listen werden, mein Hauptproblem ist immoment gar nicht wie(das heißt in welcher Form) ich die Daten in die Datei schreibe, sondern das ich erst einmal eine Datei erzeuge die bleibt und in die ich schreiben kann, wenn ich hinterher erst mal in meinen arbeitsplatz schaue und unter c: ne test.txt habe in der Hallo du drinnsteht, dann bin ich ja fürs erste *G* zufrieden.
aber du hast recht, ich hatte auch schon überlegt die ganzen Listenelemente in einen vektor zu schreiben, vor allem da man sie hinterher auch einfacher wieder auslesen kann.
ich hattegedacht das würde er bei der erzeugeung des Files brauchen (File a = new File("c:\\estaa.txt")) baer das war es ja nicht , super jetzt bin ich was schlauer... danke nochmal, das Forum hier ist echt klasse, werd noch häufiger vorbeischauen.
So jetzt hab ich mal probiert die Datei auch wieder auszulesen, nach einigen versuchen ist das hier übrig geblieben, hat einer ne Idee wo da der Fehler steckt, das was ich ausgegeben bekomme ist null, sonst nix.
Code:
try{
File aaa = new File("c:\\t.txt");
FileReader test = new FileReader(aaa);
System.out.println(test.read());
test.close();
}
catch(IOException e){
System.out.println("fehler2");
}
[\code]