Я прочитал, что createRreadStream
не помещает весь файл в память, а работает с кусками.Однако у меня есть ситуация, когда я одновременно пишу и читаю из файла;Сначала завершается запись, затем я удаляю файл с диска.Каким-то образом readstream смог завершить чтение всего файла без каких-либо ошибок.
У кого-нибудь есть объяснение этому?Я ошибаюсь, что потоки не загружают файл в память?
Вот код для записи в файл
const fs = require('fs');
const file = fs.createWriteStream('./bigFile4.txt');
function write(stream,data) {
if(!stream.write(data))
return new Promise(resolve=>stream.once('drain',resolve));
return true;
}
(async() => {
for(let i=0; i<1e6; i++) {
const res = write(file,'a')
if(res instanceof Promise)
await res;
}
write(file,'success');
})();
Для чтения я использовал это,
const file = fs.createReadStream('bigFile4.txt')
file.on('data',(chunk)=>{
console.log(chunk.toString())
})
file.on('end',()=>{
console.log('done')
})