# Datei überschreiben



## Ned Nederlander (14. Dez 2010)

Hallo,
ich dachte bis gerade immer, dass ich mit dem FileWriter eine datei jedesmal neu erstelle.

wie sich jetzt gezeigt hat, ist das nicht so ;(


gibt es eine möglichkeit, dass eine datei immer überschrieben wird, wenn der befehl neu ausgeführt wird?


vielen dank für eure hilfe!


----------



## Gast2 (14. Dez 2010)

Zeig mal etwas code.
Im grund hast du recht, wenn du einen FileWriter auf einem bestehenden File öffnest wird der Inhalt überschrieben


----------



## XHelp (14. Dez 2010)

Im Konstruktor vom Filewriter kannst du angeben, ob er anhängen oder überschreiben soll:

```
FileWriter fw = new FileWriter(path, false);
```
Javadoc


----------



## Ned Nederlander (14. Dez 2010)

bei jedem programmaufruf wird bei mir eine txt datei erstellt, mit einem festen namen.

wenn ich diese dann nicht von hand lösche, wird sie beim nächsten programmaufruf einfach nicht gelöscht.


----------



## Gast2 (14. Dez 2010)

die Datei wird auch nicht gelöscht, sondern überschrieben.
zeig doch mal deinen code.


----------



## Ned Nederlander (14. Dez 2010)

das problem ist ja, dass sie nicht überschrieben wird 


```
public static void inDateiSchreiben(String[] stringArray) throws FileNotFoundException, IOException{
	
		File fileinDateiSchreiben = new File("tempTextfuerTable.txt");
		
		FileWriter filewriterinDateiSchreiben = new FileWriter(fileinDateiSchreiben);
		
		int laenge = stringArray.length;

		try{
							
								BufferedWriter bwfileinDateiSchreiben = new BufferedWriter(filewriterinDateiSchreiben);
								
								for (int i = 0; i < laenge; i++){
									
									bwfileinDateiSchreiben.write(stringArray[i]);
									
									bwfileinDateiSchreiben.write("\n");
								
								}

	
								bwfileinDateiSchreiben.close();
		}
							
		catch(IOException inDateiSchreiben){}

	
	}
```


----------



## Gast2 (14. Dez 2010)

```
catch(IOException inDateiSchreiben){}
```
Und da fliegt dir keine IOException um die Ohren? 
Da gehört zumindest nen printStackTrace() rein...


----------



## Ned Nederlander (14. Dez 2010)

ne bekomm keine exception


----------



## Gast2 (14. Dez 2010)

Ned Nederlander hat gesagt.:


> ne bekomm keine exception



Wie Eike schon sagte:

```
catch(IOException inDateiSchreiben){
    inDateiSchreiben.printStackStrace()
}
```

Sonst wirst du ja nie sehen ob eine Excpetion fliegt.


----------



## Ned Nederlander (14. Dez 2010)

das ist ja aber überhaupt nicht mein problem. ich möchte lediglich, dass die datei überschrieben wird


----------



## XHelp (14. Dez 2010)

Du suchst einen Fehler und ignorierst die die Fehleranzeige? Das ergibt nicht viel Sinn....


----------



## Ned Nederlander (14. Dez 2010)

ich geh ja nicht davon aus, dass es sich um einen fehler handelt.


----------



## Gast2 (14. Dez 2010)

Ned Nederlander hat gesagt.:


> ich geh ja nicht davon aus, dass es sich um einen fehler handelt.


Es funktioniert etwas nicht so wie du willst das es funktioniert. Und das soll kein Fehler sein? :autsch:


----------



## ARadauer (14. Dez 2010)

Ned Nederlander hat gesagt.:


> ich geh ja nicht davon aus, dass es sich um einen fehler handelt.



doch die Datei wird normalerwiese überschrieben... irgedwas machst du falsch..
die Methode stimmt habs gerade getestet...

catch(IOException inDateiSchreiben){} = selber Schuld... ;-)
sowas nie machen... ausser man weiß was man tut..


----------



## Ned Nederlander (14. Dez 2010)

kann das was mit dem betriebssystem zu tun haben? ich mein, ist ja komisch wenns bei dir tut.

die datei wird bei mir normal erstellt, wenn die datei noch nicht existiert. wenn doch, dann wird die halt leider nicht ersetzt...


----------



## Gast2 (14. Dez 2010)

Hast du dir denn mittlerweile mal die Exception ausgeben lassen?


----------



## XHelp (14. Dez 2010)

Es könnte auch sein, dass du einfach nur das selber noch mal reinschreibst. Kannst dir ja in der Schleife ausgeben was genau du in die Datei schreibst.


----------



## Ned Nederlander (15. Dez 2010)

nein, die datei hat nicht denselben inhalt. die exeption kann ich nicht anzeigen, da mein programm auf die entsprechende txt-datei, die mit der funktion erstellt wird, zugreifen möchte, bevor die neue txt-datei erstellt wird. somit komm ich gar nicht zu der stelle, wo eine exception geworfen wird.

nachtrag: ich hab mich getäuscht, die stelle kommt doch schon davor. allerdings wird keine exception ausgegeben.


----------



## XHelp (15. Dez 2010)

Ned Nederlander hat gesagt.:


> nein, die datei hat nicht denselben inhalt.



Ja wie, dann klappt das doch? oO Stell einfach mal ein KSKB rein.


----------



## Ned Nederlander (15. Dez 2010)

nein es klappt nicht 

die funktion findest du weiter oben. 

könnte es daran liegen, dass der funktionsaufruf in einem try stattfindet, und die datei somit nicht überschrieben wird?


----------



## Gast2 (15. Dez 2010)

> könnte es daran liegen, dass der funktionsaufruf in einem try stattfindet, und die datei somit nicht überschrieben wird?


Nein, es sei denn es fliegt ne Exception die du uns nicht zeigen willst... 

Stell doch bitte mal nen KSKB rein.


----------



## Ned Nederlander (15. Dez 2010)

hat sich alles erledigt, war ein doofer fehler von mir.

trotzdem danke für eure mühe!


----------



## XHelp (15. Dez 2010)

Gibt es einen Grund, warum du dich so gegen Hilfe wehrst?
Notfalls machst du einfach in die Schreib-Schleife

```
System.out.println("Ich schreibe jetzt folgende Zeile in die Datei: "+zeile);
```
rein, dann bist schon mal schlauer.


----------



## Gast2 (15. Dez 2010)

Ned Nederlander hat gesagt.:


> hat sich alles erledigt, war ein doofer fehler von mir.
> 
> trotzdem danke für eure mühe!


Woran lags denn?


----------

