【node.js学习】--(3)--读写文件
读写文件
一般读写
新建copyFile.js
var fs = require("fs"); function copyFile(src,dest){ varfile = fs.readFileSync(src);//根据文件路劲读取文件 fs.writeFileSync(dest,file);//将内容写入文件 } function main(argv){ copyFile(argv[0],argv[1]); } main(process.argv.slice(2));//接受命令参数
执行拷贝:node copyFile “./in.txt” “./out.txt”
运行效果:
将in.txt拷贝为out.txt
管道读写
修改copyFile函数的内容为:
fs.createReadStream(src).pipe(fs.createWriteStream(dest));
管道连接了输入输出流,可以实现大文件拷贝。
遍历文件夹
同步遍历
新建travelDir.js
var fs = require("fs"); var path = require("path"); function travel(dir, callback) { fs.readdirSync(dir).forEach(function (file) { var pathname = path.join(dir, file);//拼接子路径 if (fs.statSync(pathname).isDirectory()) {//判断是否是文件夹 travel(pathname, callback); } else { callback(pathname); } }); } function printDir(argv){ travel(argv[0],function (pathname) { console.log(pathname); }); } printDir(process.argv.slice(2));
对文件结构为:
testTravelDir/ └── fathers ├── childs │ ├── child01.txt │ └── child02.txt └──father01.txt 2 directories, 3 files
的目录,遍历结果为:
异步遍历
略
字符编码
略
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
API相关文档
官方文档:http://nodejs.org/api/buffer.html
Buffer(数据块)
字符串和二进制互操作
Stream(数据流)
.on(...);
.end();
.pause();
.resume();
File System(文件系统)
文件属性读写:
fs.stat
fs.chmod
fs.chown
文件内容读写:
fs.readFile
fs.readdir
fs.writeFile
fs.mkdir
底层文件操作:
fs.open
fs.read
fs.write
fs.close
Path(路径)
.normalize
.join
.extname
参考http://www.nodewhy.com/post/15
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。