Nodejs学习之文件操作
文件操作
NodeJS 提供一组类似 UNIX(POSIX)标准的文件操作API。
1.Node 导入文件系统模块
Node 导入文件系统模块(fs)语法如下所示:
2.异步和同步
NodeJS能够操作文件。小至文件查找,大至代码编译。
NodeJS文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()。
异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。3.文件拷贝
NodeJS提供了基本的文件操作API,但是像文件拷贝这种高级功能就没有提供,因此我们先拿文件拷贝程序练手。与copy命令类似,我们的程序需要能接受源文件路径与目标文件路径两个参数。
在编写拷贝程序之前,先来看几个函数的用法。writeFileSync: 将文件内容写入目标路径
1 fs.writeFileSync(file, data[, options])
解释:
1.file为目标路径
2.data为文件内容
readFileSync: 读取文件
|
|
解释:
1.src为要读取的文件
好,这两个重要的函数理清楚了之后,我们来编写一个文件拷贝程序。
process:进程,它是一个全局变量
|
|
解释:
process是一个全局变量,获取当前nodejs进程的信息。可以不用require(…)这样的语法而直接使用。
process脚本
新建一个名为process.js的文件,内容如下:
执行process.js:
输出:
解释:
process.argv可以获得命令行参数,是一个数组。
其中 argv[0]是NodeJS执行程序的绝对路径
argv[1]为该脚本的绝对路径
argv[2]为输入的参数
好了,几个重要的函数已经解释得差不多了,下面来看一个简单的拷贝脚本:
Demo:文件拷贝little-file-copy.js
|
|
执行脚本little-file-copy.js,并未该脚本传递两个参数,第一个参数是源文件(要拷贝的文件),第二个参数为目标文件(将源文件拷贝到哪里)
拷贝脚本解释:
process.argv.slice(2)的结果如下:
12[ '/Users/liuyongfei/Webserver/htdocs/nodejs/example.js','/Users/liuyongfei/Webserver/htdocs/nodejs/7days/test/test.js' ]这两个元素分别作为copy的第一个和第二个参数,即:
12src等于'/Users/liuyongfei/Webserver/htdocs/nodejs/example.js'dst等于'/Users/liuyongfei/Webserver/htdocs/nodejs/7days/test/test.js'fs.readFileSync(src)读取源文件,并返回文件的内容
- 将文件内容写入目标路径 fs.writeFileSync(‘/Users/liuyongfei/Webserver/htdocs/nodejs/7days/test/test.js’ ,fs.readFileSync(‘/Users/liuyongfei/Webserver/htdocs/nodejs/example.js’))
然后检查一下test目录下面的确生成一个了个test.js文件,且与example.js文件一样,则证明该脚本的拷贝功能成功。