Fehlersuche Printwriter

Network

Top Contributor
Hi,

ich habe einen PrintWriter in meinem JavaCode erstellt, leider steht am Ende nicht das in der Textfile, was drin stehen sollte... es steht eig. garnichts drin!
Ich weiss aber nicht was der Fehler ist, bzw. die Ursache dafür, dass am Ende nichts drin steht.
Evt. sieht ja wer den Fehler bei der ganzen Sache.
(btw. der String "DoIt" ist nach einem Test per "System.out.println" auf jedenfall gefüllt)

Hier mein Code:
Java:
String DoIt = "";
		int i = 2;
		
		try
		{
			File file = new File("speeches\\"+owncodes.get(0).getText()+".txt");
			while( file.exists() )
			{
				file = new File( "speeches\\"+owncodes.get(0).getText()+"("+i+")"+".txt" );
				i += 1;
			}
			FileWriter fw = new FileWriter( file.getPath() , true );
			PrintWriter pw = new PrintWriter( fw );
			
			DoIt = st("Name: " + owncodes.get( 0 ).getText()) + "\n" + st("ID:");
			pw.println( DoIt );
			
			for( int c = 1; c <= 4; c++ )
			{
				if(!( owncodes.get( c ).getText().equals("[Erlaubter Nutzer]") )) DoIt += st( " " + owncodes.get( c ).getText() );
			}
			DoIt += "\n";
			for( int d  = 0; d < systemtranslate1.size(); d++ )
			{
				DoIt += st( owncodes.get( (d+5) ).getText() );
				if( i%17 == 0 ) DoIt += "\n";
			}
			pw.println( DoIt );
		}
		catch( IOException e ){ JOptionPane.showMessageDialog(null, "An unknown error occured", "Error", JOptionPane.OK_CANCEL_OPTION);}
 
Vielen Dank.
Dann hat dass doch eine Bedeutung was ich damals in mein altes Programm geschrieben hatte 🙂

Und was bewirkt "pw.flush()" ?
 
flush bewirkt dass alles was noch im Buffer steht in die Datei geschrieben wird.
close() ruft, unter anderem, flush() aus.
 
Zuletzt bearbeitet von einem Moderator:
Danke.
Jetzt bin ich nurnoch enttäuscht, dass ein PrintWriter keine "\n"s verarbeitet, die in "DoIt" stehen. Aber damit muss ich wohl alleine klar kommen 😉
 
Jetzt bin ich nurnoch enttäuscht, dass ein PrintWriter keine "\n"s verarbeitet, die in "DoIt" stehen
was meinst du mit "verarbeiten"?
In der geschriebenen Datei sollte daraus (je nach OS/Editor) nen line break entstehen.
Ersetz sonst zum testen mal \n durch
Code:
System.getProperty("line.separator");
 
was meinst du mit "verarbeiten"?
In der geschriebenen Datei sollte daraus (je nach OS/Editor) nen line break entstehen.
Ersetz sonst zum testen mal \n durch
Code:
System.getProperty("line.separator");

Das "\n" funktioniert auf meinem System und hab ich auch schon oft gemacht. Das ist wohl eine sehr gute Variante, einen platformunabhängigeren Writer zu schreiben.

Ich merke gerade dass das 1. und letzte "\n" nicht wirken können, weil sie nie zum Einsatz kommen.
Das 2. jedoch müsste richtig gesetzt sein.

Mit "wird nicht verarbeitet" meine ich:
-DoIt bekommt Text: "Hallo wie gehts?\nMir gehts gut!"
-System.out.println gibt aus:
Hallo wie gehts?
Mir gehts gut!
-PrintWriter schreibt in die Datei: Hallo wie gehts?Mir gehts gut!

Also irgendwie wird das \n ignoriert. Es wird also nicht verwendet, noch wird es in die Datei geschrieben. Es passiert nichts!
 

Neue Themen


Zurück
Oben