当前位置: 首页 > 后端技术 > Node.js

nodeJs文件系统(fs)和流(stream)

时间:2023-04-03 20:14:09 Node.js

文件系统(FileSystem):在Node中,文件系统的交互是非常重要的。服务器的本质是将本地文件发送给客户端。Node使用fs模块与文件系统进行交互,它提供了一些标准的文件访问API类来打开、读取、写入文件以及与文件进行交互。如果使用fs模块,必须先从核心模块加载;使用constfs=require('fs');介绍一下fs的使用特点:fs模块中的所有操作都有同步和异步两种形式可供选择,同步文件系统会阻塞程序的执行,即直到操作完成后才会向下执行代码完全的。异步文件系统不会阻塞程序的执行,而是在运行完成时通过回调函数返回结果。///fs.openSync同步读取(读取时线程会阻塞)lethello=fs.openSync("hello.txt","w");//如果不存在,会自动创建一个新的//3\。向fs写入内容。writeFileSync(你好,'你好!');//4\.保存退出fs.closeSync(hello);[](https://github.com/AnsonZnl/S...文件操作:打开文件:fs.open(path,flags[,mode],callback)异步打开异步都是callback回调嵌套回调fs.openSync(path,flags[,mode])同步打开文件flags:http://nodejs.cn/api/fs.html#fs_fs_open_path_flags_mode_callback1.同步打开文件//1\.导入模块letfs=require('fs');//2.同步打开文件varfd=fs.openSync('1.txt','w');//3.写入内容fs.writeFileSync(fd,"helloworld!");//4\.保存并关闭fs.closeSync(fd);2.异步打开文件//1.ImportModuleletfs=require('fs');//2\.打开文件fs.open('1.txt','a',(err,fd)=>{//2.1判断是否有错误if(!err){//正确2.2写入文件fs.writeFile(fd,"今天是个好日子!",(err)=>{//2.2.1写入成功if(!err){cconsole.log('写入成功');}else{抛出错误;}//2.3关闭文件fs.close(fd,(err)=>{if(!err){console.log('filetosaveandclose')}else{throwerr;}})})}else{抛出错误;}})[](https://github.com/AnsonZnl/S...WritingusingfilestreamsWritingwithfilestreams:http://nodejs.cn/api/fs.html#fs_fs_createwritestream_path_options//同步操作//1\.导入模块letfs=require('fs');//2.建立通道letws=fs.createWriteStream('fsw.txt')//3.打开通道ws.once('open',()=>{console.log('通道已打开');})ws.once('close',()=>{console.log('通道已关闭');})//4\.写内容ws.write('我爱你,');ws.write('我爱你,');ws.write('我爱你,');[](https://github.com/AnsonZnl/S...读写文件:文件地址:http://nodejs.cn/api/fs.html#fs_fs_readfile_path_options_callback读取文件://1\.importmoduleletfs=require('fs');//2\.读取文件fs.readFile('source/hello.txt','utf8',(err,data)=>{//判断是否成功if(!err){console.log(data);////console.log(data.toString());//数据默认以二进制方式读取toString()方法转换为}else{throwerr;}})读取图片://3\.读取图片fs.readFile("source/psb.jpg",(err,data)=>{//判断是否成功if(!err){//写入图片fs.writeFile('img.jpg',data,(err)=>{if(!err){console.log('写入成功!')}else{throwerr;}})}else{throwerr;}});[](https://github.com/AnsonZnl/S...阅读视频://1\.导入模块letfs=require('fs');//2\.阅读视频fs.readFile('source/cddbb.mp4',(err,data)=>{if(!err){//写入视频fs.writeFile('nmx.mp4',data,(err)=>{if(!err){console.log('写入成功!');}else{throwerr;}})}else{throwerr;}})//3\.流文件的读取(批处理文件)letre=fs.createReadStream('source/cddbb.mp4');//创建读取流letws=fs.createWriteStream('Newvideo.mp4');//创建写入流//4\.创建管道re.pipe(ws);//文件流console.log('Filestreamingcompleted')参考:详解NodeJS文件系统fs我的GitHub总结的NodeJS笔记