标签:
所有的 Stream 对象都是 EventEmitter 的实例。常用的事件有:
data - 当有数据可读时触发。
end - 没有更多的数据可读时触发。
error - 在接收和写入过程中发生错误时触发。
Readable - 可读操作。
Writable - 可写操作。
Duplex - 可读可写操作.
NodeJS通过fs
内置模块提供对文件的操作。fs
模块提供的API基本上可以分为以下三类:
文件属性读写。
其中常用的有fs.stat
、fs.chmod
、fs.chown
等等。
文件内容读写。
其中常用的有fs.readFile
、fs.readdir
、fs.writeFile
、fs.mkdir
等等。
底层文件操作。
fs.open
、fs.read
、fs.write
、fs.close
等等。fs
模块的所有异步API都有对应的同步版本,用于无法使用异步操作时,或者同步操作更方便时的情况。Sync
之外,异常对象与执行结果的传递方式也有相应变化。path
内置模块来简化路径相关操作,并提升代码可读性。以下分别介绍几个常用的API。path.normalize
将传入的路径转换为标准路径,具体讲的话,除了解析路径中的.
与..
外,还能去掉多余的斜杠。如果有程序需要使用路径作为某些数据的索引,但又允许用户随意输入路径时,就需要使用该方法保证路径的唯一性。以下是一个例子:
var cache = {};
function store(key, value) {
cache[path.normalize(key)] = value;
}
store(‘foo/bar‘, 1);
store(‘foo//baz//../bar‘, 2);
console.log(cache); // => { "foo/bar": 2 }
坑出没注意: 标准化之后的路径里的斜杠在Windows系统下是
\
,而在Linux系统下是/
。如果想保证任何系统下都使用/
作为路径分隔符的话,需要用.replace(/\\/g, ‘/‘)
再替换一下标准路径。
path.join
将传入的多个路径拼接为标准路径。该方法可避免手工拼接路径字符串的繁琐,并且能在不同系统下正确使用相应的路径分隔符。以下是一个例子:
path.join(‘foo/‘, ‘baz/‘, ‘../bar‘); // => "foo/bar"
path.extname
当我们需要根据不同文件扩展名做不同操作时,该方法就显得很好用。以下是一个例子:
path.extname(‘foo/bar.js‘); // => ".js"
标签:
原文地址:http://www.cnblogs.com/new-dream-new-hope/p/5759159.html