stockhausen
Grünschnabel
Hallo Zusammen,
ich möchte eine existierende *.txt Datei editieren.
Die Datei hat den folgenden Inhalt:
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:
Besten Dank,
Michael
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