我有一个相对较小的文件(大约数百千字节),我想在内存中直接访问整个代码执行过程.
我不太清楚Node的内部 struct .js,所以我想问的是fs open
分是否足够,还是我必须读取所有文件并复制到Buffer
分?
我有一个相对较小的文件(大约数百千字节),我想在内存中直接访问整个代码执行过程.
我不太清楚Node的内部 struct .js,所以我想问的是fs open
分是否足够,还是我必须读取所有文件并复制到Buffer
分?
基本上,您需要使用fs
模块中的readFile
或readFileSync
功能.它们返回给定文件的完整内容,但行为不同(异步与同步).
如果阻塞 node .js(例如,在应用程序启动时)不是问题,您可以使用同步版本,它非常简单:
var fs = require('fs');
var data = fs.readFileSync('/etc/passwd');
如果需要异步,代码如下:
var fs = require('fs');
fs.readFile('/etc/passwd', function (err, data ) {
// ...
});
请注意,在任何一种情况下,您都可以将options
对象作为第二个参数,例如指定要使用的编码.如果省略编码,将返回原始缓冲区:
var fs = require('fs');
fs.readFile('/etc/passwd', { encoding: 'utf8' }, function (err, data ) {
// ...
});
有效编码为utf8
、ascii
、utf16le
、ucs2
、base64
和hex
.还有binary
编码,但它已被弃用,不应再使用.您可以在相应的documentation中找到有关如何处理编码和缓冲区的更多详细信息.