# Tabelle in neuer Datei speichern



## BeneS (20. September 2004)

hey folks,

meine tabelle ließt eine csv datei ein. jetzt sollte es möglich sein ein paar werte in einzelnen Zellen zu ändern und  dann das ganze wieder abzuspeichern.

ich hab hier schon mal einen beispiel code gesehen und übernommen, nur speichert mir der code nur eine leere Datei... :


```
try{
BufferedWriter bw = new BufferedWriter(new FileWriter(filepath));
System.out.println(filepath);
//DefaultTableModel dtm = new DefaultTableModel();
Object[] oa = dtm.getDataVector().toArray();
for (int i = 0; i < oa.length; i++) {
Object[] o = (Object[]) oa[i];
for (int j = 0; j < o.length; j++) {
bw.write(o[j].toString());
bw.write(SEPARATOR_CHAR);
}
bw.newLine();
}
}
catch(Exception err){}
```

ich denke man muss der Tabelle irgendwie mitteilen,dass da was gändert wurde.

für anregungen wäre ich sehr dankbar.

mfg

bene


----------



## BeneS (22. September 2004)

ich glaube ich hab das prinzip von dem FileWriter nicht verstanden...


```
import java.io.*;
public class Datei
{
  public static void main( String args[] )
  {
    FileWriter fw = null;
    try
    {
      fw = new FileWriter( "C:\\fileWriter.txt" );
      fw.write( "Hallo Welt geht in eine Datei" );
    }
    catch ( IOException e ) {
      System.out.println( "Konnte Datei nicht erstellen" );
    }
    finally {
      try {
        if ( fw != null ) fw.close();
      } catch (IOException e) {}
    }
  }
}
```

funktioniert nämlich auch nicht.....  

das kann doch nicht sein. Was mach ich denn da falsch?

mfg

bene


----------



## Vincentius (22. September 2004)

Hmm.. komisch, ich habe grade Deinen Code bei mir ausgeführt, und es hat wunderbar geklappt. Hast Du vielleicht keine Schreibrechte auf Deiner C-Platte?


----------



## BeneS (22. September 2004)

ja das geht jetzt bei mir auch   ...

hst du zu oben einen vorschlag

mfg

bene


----------



## Vincentius (22. September 2004)

Du musst den Writer closen, ähnlich, wie in Deinem zweiten Beispiel.

EDIT:
Du kannst auch zwischendurch die *flush()* Methode von dem *BufferedWriter*, dann wird der Inhalt aus dem Puffer direkt in die Datei geschrieben.


----------



## BeneS (22. September 2004)

das funktioniert nicht.... weder das mit dem close noch mit dem flush und mit beiden auch nicht....


----------



## BeneS (22. September 2004)

also: das close und das flush hab ich nun eingefügt. und die ganze funktion in einer neuen Klasse definiert und voila: es geht jetzt 

vielleicht war es für das programm ein problem die read und save funktion in einer Klasse zu haben.. naja wie auch immer. Wenigstens gehts jetzt ;-) 

mfg

bene


----------

