我正在讨论node.js,并且已经发现了两种读取文件并将其发送到网络的方法,一旦我确定它存在并且已经使用writeHead发送了正确的MIME类型:
// read the entire file into memory and then spit it out
fs.readFile(filename, function(err, data){
if (err) throw err;
response.write(data, 'utf8');
response.end();
});
// read and pass the file as a stream of chunks
fs.createReadStream(filename, {
'flags': 'r',
'encoding': 'binary',
'mode': 0666,
'bufferSize': 4 * 1024
}).addListener( "data", function(chunk) {
response.write(chunk, 'binary');
}).addListener( "close",function() {
response.end();
});
Run Code Online (Sandbox Code Playgroud)
我是否正确假设fs.createReadStream可能提供更好的用户体验,如果有问题的文件是大的,如视频?感觉它可能不那么块状; 这是真的?我还需要了解其他优缺点,缺点,警告或陷阱吗?
如何在Node.js中复制文件?
例
+ /old
|- image.png
+ /new
Run Code Online (Sandbox Code Playgroud)
我想将image1.png从'old'复制到'new'目录.
这不起作用.
newFile = fs.createWriteStream('./new/image2.png');
oldFile = fs.createReadStream('./old/image1.png');
oldFile.addListener("data", function(chunk) {
newFile.write(chunk);
})
oldFile.addListener("close",function() {
newFile.end();
});
Run Code Online (Sandbox Code Playgroud)
谢谢你的答复!