Ouput Datei

dadom110

Erfahrenes Mitglied
Schönen Guten Tag,

von einem Problem zum nächsten :)
Will die Windows Registry verändern, hierfür schreibe ich eine *.reg Datei, die ausgeführt werden soll.

Code:
	File temp=new File("C:/temp.reg");
	try
	{
		FileOutputStream out=new FileOutputStream(temp);
		DataOutputStream out_stream=new DataOutputStream(out);
		out_stream.writeBytes("REGEDIT4");
		out_stream.writeBytes("\n\n\n");
		out_stream.writeBytes("[HKEY_CURRENT_USER\\Software]" + "\n");
		out_stream.writeBytes("\"dbmov\"=\"STRING\"" + "\n");
		Runtime.getRuntime().exec("regedit C:/temp.reg");	
	}
	catch(Exception e)
	{
		System.out.println("Dateifehler");
	}

Mein Fehler liegt mit sicherheit an meinen Line-Feed Zeichen oder? Wenn ich die in die Datei gehen, die beiden Leerzeichen raus nehme und neu wieder einfüge, akzeptiert er die Registry Änderung. Jemand eine Idee?

so sieht die Reg Datei im übrigen aus:
Code:
REGEDIT4


[HKEY_CURRENT_USER\Software]
"dbmov"="STRING"

Viele Grüße
Dom

PS: Ich weis sich könnte den String in einer Zeile an die Datei übergeben und nicht jedes mal aufs neue die writeBytes funktion benutzen, aber hatte vorher ein paar Probleme mit meinen LineFeeds, darum hab ich das fürs ersts mal so gelassen
 
Zuletzt bearbeitet:
Hi,

versuchs mal mit

Code:
final String LINE_SEPARATOR = System.getProperty("line.separator");

Dies ersetzt "\n" systemspezifisch.

// Edit: Warum verwendest Du zusätzlich noch den DataOutputStream? Das ganze sollte doch sowieso keine Auswirkung auf das Encoding haben, oder?

Gruß

Romsl
 
Zuletzt bearbeitet:
Romsl hat gesagt.:
Hi,

versuchs mal mit

Code:
final String LINE_SEPARATOR = System.getProperty("line.separator");

Dies ersetzt "\n" systemspezifisch.

Besserung aber immer noch nicht gesund :) Wenn ich das Programm jetzt ausführe, scheitert er immer noch beim ausführen der *.reg Datei, aber jetzt scheint es ein Fehler beim starten der Datei durch den Programmcode zu sein, da ich die Datei "per Hand" ohne Probleme ausführen kann.

Nachtrag: Es scheint daran zu liegen, das der Programmcode irgendwie noch auf die Datei verweist und er die dann nicht ausführen kann, wenn ich das Programm zwei mal hintereinander ausführe und beim zweiten mal den gesamten "Eintragungsprozess" auskommentiere (also im try-block nur noch Runtime...) dann geht es auch :) vielleicht liegt es dann an der meiner Methode die Datei zu schreiben (s. unten)

// Edit: Warum verwendest Du zusätzlich noch den DataOutputStream? Das ganze sollte doch sowieso keine Auswirkung auf das Encoding haben, oder?

mhh, erlich gesagt weiss ich das nicht, welche Metoden gibt es denn noch? Und wofür verwendet manden DataOutputStream normalerweise? Das war das erste Beispiel was ich gefunden habe und was ich für mene Zwecke umbauen konnte :)

Mfg
Dom
 
Zuletzt bearbeitet:
So guten morgen zusammen,

so früh am Tag und schon so erfolgreich ;)

Ich close mein FileOutputStream (out.close();) und schon klappt es :D Wenn mir jetzt noch jemand die andere Methode sagt, und wofür mach "normalerweise" den FileOutputStream verwendet, hab ich schon wieder viel gelernt und könnte eigentlich wieder ins Bett gehen :D

Grüße
Dom
 
Zurück