File handling

mcbass

Mitglied
Moin,

ich hab ein problem mit file handling unter java. Ich will eine datei öffnen, was ändern und schreiben. Nun stellt das mit FileInputStream und FileOutputStream erstmal kein problem, nur kann das sehr viel zeit in anspruch nehmen, wenn ich das relativ oft mache.

Im Prinzip will ich eine Datei öffnen, und an einer spezifischen Stelle etwas schreiben (überschreiben). Dazu muss die Datei sozusagen "shared" sein, damit eine andere Applikation diese ebenfalls öffnen kann und das was ich da rein schreibe, lesen kann.

Die große Frage, geht das in Java und hat jemand einen Hinweis wo ich dazu was finden kann ?

Danke

mcbass
 
Hallo Thorsten,

danke erstmal für die schnelle Antwort, aber leider ist das nicht was ich suche.

Mir ist schon klar wie ich eine datei öffne da was raus lese und das ganze dann wieder schreibe. Was ich aber machen möchte ist eine datei zu öffnen, ohne diese überhaupt erst zu lesen und direkt daten an eine bestimmte stelle schreiben.

z.B. ich habe eine datei die sieht so aus :
000100010002000000000000000x00000000000000

und ich möchte die datei öfnnen, an die stelle, wo das x steht ein y schreiben, und die datei offen lassen, weil ein anderes programm diese datei ebenfalls offen hat und feststellt, das sich das x geändert hat.

Hoffe das macht es etwas deutlicher was ich vor habe.

Danke.

mcbass
 
Also ich hab jetzt mal eine methode geschrieben, die mir ein file erstellt, und meinen string an die entsprechende stelle schreib,..... leider geht es nicht, zumindest nicht wenn die position nicht 0 ist. Das file wird jedesmal neu erstellt. Wie bringe ich die methode dazu das file zunehmen das schon da ist ?

Code:
  	public void write () {
  		
  		String infile = "d:/test.dat";
  		String data = "test";
  		
  		int pos = 0;
  			   
  		PrintWriter out;
  		FileWriter fw;
  		
  		char[] c = new char[127];
  
  	   c = data.toCharArray();
  
  		try {		  
  			fw = new FileWriter(infile);
  			fw.write(c, pos, c.length);
  			fw.close();
  		 } catch (Exception e) {
  			System.out.println("Aaaaaaaaaaaaaaaah);
  			e.printStackTrace();
  		 }
  	 }


Und vielleicht kann mir auch noch jemand erklären was der unterschied zwischen dem schreiben einer datei mit FileWriter und dem schreiben mit PrintWriter dem ich den FileWriter übergebe ?

Danke
 

Neue Beiträge

Zurück