*.txt Datei editieren?!

stockhausen

Grünschnabel
Hallo Zusammen,

ich möchte eine existierende *.txt Datei editieren.
Die Datei hat den folgenden Inhalt:


Code:
KEY1 = VALUE1

KEY2 = VALUE2
KEY3 = VALUE3

KEY4 = 

KEY5 = VALUE5
KEY6 = VALUE6


Wie ihr sehen könnt, besteht die Datei aus KEY/VALUE Paaren.
Für KEY4 ist kein Value eingetragen worden.

Meine Anwendung soll das Value für KEY4 setzen (KEY4 = VALUE4).

Ich bin soweit, dass ich mitlerweile die String-Position nach "KEY4 =" in bytes bestimmen kann.

Mir gelingt es leider nicht, das neue Value hinter "KEY4 =" zu positionieren!


Mein Code:

Code:
public static void main(String[] args) {	
	setNewValue("VALUE4");
}

public static void setNewValue(String value) {
	RandomAccessFile raf;
	try {
		raf = new RandomAccessFile("c:/test.txt", "rw");
		long rafLengthInBytes = raf.length();		
		int bytesRead = 0;
		while(bytesRead <= rafLengthInBytes) {			
			try  {			
				String line = raf.readLine();
				bytesRead += line.getBytes().length;					
				if(line!=null) {
					if(line.contains("KEY4 =")) {					
						long currentPosition = raf.getFilePointer();
						raf.seek(currentPosition);
						
						System.out.println(bytesRead);
													
//							byte[] buffer = new byte[60000];
//							randomAccessFile.write(buffer, (bytesRead - line.getBytes().length) , bytesRead);
						// randomAccessFile.writeBytes(value);
						
						raf.close();
						return;
					}	
				}		
			} catch(Exception ex) {
				raf.close();
				return;
			}
		}
	} catch (FileNotFoundException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	}
}


Besten Dank,
Michael
 
Zurück