Мне нужно периодически использовать большие неформатированные текстовые файлы только для чтения и проверять наличие определенного содержимого/слов в каждом из этих файлов. Этот файл состоит из всех буквенно-цифровых символов. Однако у меня возникают проблемы даже с чтением в end
потока для одного из этих больших статических файлов.
Ниже приведена копия самого простого кода, который я пытался запустить после того, как заметил, что он не достигает end
, и это по-прежнему не вызывает событие end
. Я вижу много итераций/фрагментов чтения data
, но никогда не запускаются все данные для файла и end
.
function readFile(file) {
const readStream = fs.createReadStream(file, {
fd: null,
flags: 'r',
encoding: 'utf-8',
allowVolatile: true,
highWaterMark: staticHighWaterMark,
});
readStream.on('data', (chunk) => {
console.log('DATA chunk', chunk.length);
});
readStream.on('end', () => {
console.log('END file');
});
}
Это настолько просто, что я начинаю задаваться вопросом, не связано ли это с моей средой, но если в простой логике выше для чтения потока есть что-то, что определено как проблема, пожалуйста, дайте мне знать.
ПРИМЕЧАНИЕ. Если я продолжаю увеличивать параметр highWaterMark
, он проходит дальше по файлу, но все еще не достигает end
файла. Однако это не должно иметь значения для достижения или недостижения конца файла, а вместо этого должно контролировать, сколько данных он считывает на «фрагмент».
end
файла? - person user376327   schedule 07.07.2017readline
(nodejs.org /dist/latest-v6.x/docs/api/readline.html). Мне любопытна твоя проблема. Я собираюсь опубликовать код для проверки, хорошо? - person Diego ZoracKy   schedule 07.07.2017allowVolatile
- person smac89   schedule 24.07.2017