Можно ли записать строку в середину файла, не перезаписывая файл полностью?
К примеру есть файл test.txt с содержанием:
1234567890abcdfghijklmnoprstxyz
Нужно записать вместо "ab" строку "++", то есть что бы получилось:
1234567890++cdfghijklmnoprstxyz
Пробую так:
var fs = require('fs');
var path = require('path');
var fd = fs.openSync(path.join(process.cwd(), 'test.txt'), 'a+');
var buf=Buffer.from("++","utf8");
fs.writeSync(fd, buf, 0,2, 10);
console.log('closing file now')
fs.closeSync(fd);
Но "++" записывается в конец файла, изменение параметров fs.writeSync не помогает, всё равно строку в конец файла пишет. Хотя по документации
https://nodejs.org/api/fs.html#fs_fs_writesync_fd_... , там есть параметр position.
Причём в fs.readSync(fd, buf, 0,2,10); position работает, и считывает строку с нужной позиции.