nodejs добавляет данные в конец потока чтения
Я хотел бы прочитать файл.txt, добавить данные в конец и, наконец, отправить их в zipstream. Сейчас я пишу новый файл, а затем использую новый файл для zipstream, но я бы хотел сделать это на лету, не создавая ненужный новый файл.
Мой вопрос заключается в том, как создать поток чтения, изменить его и отправить в другой поток чтения (возможно, с записывающим потоком в середине).
Это возможно?
Первоначальная идея была этой, но я потерялся где-то посередине:
var zipstream = require('zipstream');
var Stream = require('stream');
var zipOut = fs.createWriteStream('file.zip');
var zip = zipstream.createZip({ level : 1 });
zip.pipe(zipOut);
var rs = fs.createReadStream('file.txt');
var newRs = new Stream(); // << Here should be an in/out stream??
newRs.pipe = function(dest) {
dest.write(rs.read());
dest.write("New text at the end");
};
zip.addEntry(newRs, {name : 'file.txt'}, function() {
zip.finalize();
});
0 ответов
Вы можете добавить преобразование (подкласс stream.Transform). Затем в методе _flush у вас есть возможность выводить любой контент, который вы хотите, когда поток ввода достигнет конца. Это может быть передано между читаемым потоком и записываемым потоком. Обратитесь к документации модуля потокового узла для получения подробной информации.