Node3-4基础API----fs(文件系统)
Posted chorkiu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node3-4基础API----fs(文件系统)相关的知识,希望对你有一定的参考价值。
异步的形式总是将完成回调作为其最后一个参数。 传给完成回调的参数取决于具体方法,但第一个参数始终预留用于异常。 如果操作成功完成,则第一个参数将为 null
或 undefined
。
1.读取文件操作(readFile)
举个例子(读取文件操作) 同步会先执行完 [尽量用异步]
const fs = require(‘fs‘) fs.readFile(‘./30_readfile.js‘,‘utf8‘,(err,data)=> if(err) throw err else //输出结果是一个Buffer的(因为没有toString或者在参数那里定义编码格式) console.log(data); // console.log(data.toString()); ) // 同步操作 const data = fs.readFileSync(‘./29_event_remove.js‘,‘utf8‘); console.log(data);
2.写文件(writeFile)
//输出done const fs = require(‘fs‘) fs.writeFile(‘./text‘,‘this is text‘,‘utf8‘,err=> if(err) throw err; console.log(‘done‘) ) //输出done 使用了Buffer const fs = require(‘fs‘) const content = Buffer.from(‘this is text‘) fs.writeFile(‘./text‘,content,err=> if(err) throw err; console.log(‘done‘) )
3.查看文件信息(stats)
const fs =require(‘fs‘) fs.stat(‘./32_stat.js‘,(err,stats)=> if(err) throw err else console.log(stats.isFile()); console.log(stats.isDirectory()); console.log(stats); )
运行结果:
4.重命名(rename)
const fs =require(‘fs‘) fs.rename(‘./text‘,‘text.txt‘,err=> if(err) throw err console.log(‘done!‘); )
5.unlink
const fs = require(‘fs‘)
fs.unlink(‘./text.txt‘,err=>);
6.读文件夹(readdir)
const fs = require(‘fs‘) fs.readdir(‘./‘,(err,files)=> if(err) throw err console.log(files); )
运行结果
7.创建一个文件夹(mkdir)
const fs =require(‘fs‘)
fs.mkdir(‘test‘,err=> )
8.移除一个文件夹(rmdir)
const fs = require(‘fs‘)
fs.rmdir(‘./test‘,err=>);
9.监视(watch)[很有用,做本地构建相当方便]
const fs = require(‘fs‘) fs.watch(‘./‘, recursive:true ,(eventType,filename)=> console.log(eventType,filename); );
10.readstream
//stream有方向的流 (数据) stream有两个条件按,一个是方向一个是数据 const fs = require(‘fs‘) const rs = fs.createReadStream(‘./39_readstream.js‘); //读一点给一点,类似网速慢加载从上到下 rs.pipe(process.stdout);
11.writestream
const fs =require(‘fs‘) const ws = fs.createWriteStream(‘./text.txt‘) const tid = setInterval(()=> const num = parseInt(Math.random()*10) console.log(num); if(num<8) ws.write(num + ‘‘) else clearInterval(tid) ws.end() ,200) ws.on(‘finish‘,()=> console.log(‘done!‘); )
运行结果
12.回调地狱解决
方法一
const fs =require(‘fs‘) const promisify = require(‘util‘).promisify; const read = promisify(fs.readFile) read(‘./41_promisify.js‘).then(data=> console.log(data.toString()); ).catch(ex=> console.log(ex); )
运行结果
方法二
const fs =require(‘fs‘) const promisify = require(‘util‘).promisify; const read = promisify(fs.readFile) // read(‘./41_promisify.js‘).then(data=> // console.log(data.toString()); // ).catch(ex=> // console.log(ex); // ) async function test() try const content= await read(‘./41_promisify.js‘) console.log(content.toString()); catch(ex) console.log(ex); test();
运行结果跟上面一样
以上是关于Node3-4基础API----fs(文件系统)的主要内容,如果未能解决你的问题,请参考以下文章