Ich habe eine Datei, die manchmal \00
Nullzeichen darin enthält. Also muss ich es reparieren.node's fs.writeFile überschreibt keinen vorherigen Inhalt
Das ist der Grund, warum ich es lese, die ungültigen Zeichen entferne und es wieder schreibe. ABER, fs.writeFile
überschreibt nicht seinen vorherigen Inhalt. Die neuen Inhalte werden angehängt, was ich nicht möchte.
Ist das, weil mein Schreibcode im Lesecode ist?
fs.readFile('./' + file, function (err, data) {
if (err) {
console.error(err);
return;
}
var str = data.toString();
var repaired = str.slice(0, str.indexOf('\00')) + str.slice(str.lastIndexOf('\00') + 1, str.length);
//console.log(repaired);
fs.writeFile('./' + file, repaired, function (err) {
if (err)
console.error(err);
});
});
Ich habe auch versucht {flag:'w'}
mit (was ich denke, fs.writeFile
bereits standardmäßig haben kann)
Wenn ich nicht falsch liege, wird nur das letzte Zeichen der Datei fehlen. Können Sie das bitte überprüfen? – thefourtheye
@thefourtheye Ja, ich denke es ist ein '\ n' und es wird entfernt –
Dann hatte ich Recht. Die Zeichenfolge, nach der '\ 00' gesucht wird, befindet sich nicht in der Datei. – thefourtheye