我正在使用 fs.createWriteStream 流式传输 xml 文件。无论出于何种原因,如果进来的块碰巧破坏了 xml 结束标记,我会看到一堆空字符被添加到块末尾的数据中,并且它破坏了 xml。
这可能是因为我们必须在流式传输数据文件后将所有 xml 保留值(<、>、 等)替换为正确的字符(<、> 等)。关于为什么会这样的任何想法发生了又该如何正确处理呢?这是基本的流代码:
var writableStream = fs.createWriteStream(file_path + send_id + '.xml', { highWaterMark: 128 * 1024 });
var options = {
host: domain_name,
path: f_path,
method: 'POST',
'Content-Type': 'text/html',
'Content-Length':Buffer.byteLength(send_id)
};
var req = http.request(options, (res) =>{
res.setEncoding('utf8');
res.on('data', (chunk) => {
writableStream.write(chunk);
});
res.on('end', () => {
console.log('No more data in response');
});
});
req.write(send_id);
req.end();