?1 /* ??2 ?1. fs.stat ?检测是文件还是目录(目录 文件是否存在) ??3 ?2. fs.mkdir ?创建目录 (创建之前先判断是否存在) ??4 ?3. fs.writeFile ?写入文件(文件不存在就创建,但不能创建目录) ??5 ?4. fs.appendFile 写入追加文件 ??6 ?5. fs.readFile 读取文件 ??7 ?6. fs.readdir 读取目录 ??8 ?7. fs.rename 重命名 ??9 ?8. fs.rmdir ?删除目录 ?10 ?9. fs.unlink 删除文件 ?11 */ 12 ??13 var fs=require(‘fs‘); ??//fs是node.js的核心模块,不用下载安装,可以直接引入 ??14 ??15 //1. fs.stat ?检测是文件还是目录 ?fs.statSync()同步获取stats对象,通过返回值接收。 16 fs.stat(‘html‘,function(error,stats){ 17 ????if(error){ 18 ????????console.log(error); 19 ????????return false; 20 ????} 21 ????console.log(‘文件:‘+stats.isFile()); 22 ????console.log(‘目录:‘+stats.isDirectory()); 23 }) 24 ??25 ??26 //2. fs.mkdir ?创建目录 ??27 fs.mkdir(‘css‘,function(error){ 28 ????if(error){ 29 ????????console.log(error); 30 ????????return false; 31 ????} 32 ????console.log(‘创建目录成功‘); 33 }) 34 ??35 ??36 //3. fs.writeFile ?写入文件(会覆盖之前的内容)(文件不存在就创建) ?utf8参数可以省略 ??37 fs.writeFile(‘123.txt‘,‘你好nodejs 覆盖‘,‘utf8‘,function(error){ 38 ????if(error){ 39 ????????console.log(error); 40 ????????return false; 41 ????} 42 ????console.log(‘写入成功‘); 43 }) 44 ??45 ??46 //4. fs.appendFile 追加文件 ??47 fs.appendFile(‘123.txt‘,‘这是写入的内容\n‘,function(error){ 48 ????if(error){ 49 ????????console.log(error); 50 ????????return false; 51 ????} 52 ????console.log(‘写入成功‘); 53 }) 54 ??55 ??56 //5.fs.readFile 读取文件 ??57 fs.readFile(‘123.txt‘,function(error,data){ 58 ????if(error){ 59 ????????console.log(error); 60 ????????return false; 61 ????} 62 ????//console.log(data); ?//data是读取的十六进制的数据。 ?也可以在参数中加入编码格式"utf8"来解决十六进制的问题; 63 ????console.log(data.toString()); ?//读取出所有行的信息 ??64 }) 65 ??66 ??67 //6.fs.readdir 读取目录下第一级内容 ?把目录下面的文件和文件夹都获取到。 ??68 fs.readdir(‘html‘,function(error,data){ 69 ????if(error){ 70 ????????console.log(error); 71 ????????return false; 72 ????} 73 ????console.log(data); ?//data是数组类型,包含文件夹以及文件的名字(只有第一级目录内容)。拿到一个文件夹下面的所有目录 ??74 }) 75 ??76 ??77 //7.fs.rename 重命名 ?1.改名 ?2.剪切文件(移动) ??78 fs.rename(‘html/index.html‘,‘html/news.html‘,function(error){ 79 ????if(error){ 80 ????????console.log(error); 81 ????????return false; 82 ????} 83 ????console.log(‘修改名字成功‘); 84 }) 85 ??86 ??87 //8. fs.rmdir ?删除目录 ??rmdir 这个方法只能删除目录,不能删除文件 ??88 fs.rmdir(‘abc目录‘,function(error){ 89 ????if(error){ 90 ????????console.log(error); 91 ????????return false; 92 ????} 93 ????console.log(‘删除目录成功‘); 94 }) 95 ??96 ??97 //9. fs.unlink删除文件 ??98 fs.unlink(‘index.txt‘,function(error){ 99 ????if(error){100 ????????console.log(error);101 ????????return false;102 ????}103 ????console.log(‘删除文件成功‘);104 })105 ?106 ?107 //10. fs.createReadStream ?从文件流中读取数据,读取的文件比较大时建议用流的方式读取,文件比较大会多次读取。 ?108 var fileReadStream = fs.createReadStream( ‘data1.json‘);109 var str = ‘‘;110 fileReadStream.on(‘data‘, (data) => {111 ????console.log("接收到" + data.length); ??//文件比较大时,会多次读取,多次执行该回调函数 ?112 str += data;113 })114 fileReadStream.on(‘end‘, () => {115 ????console.log(" --- 结束 ---");116 console.log( str );117 })118 fileReadStream.on(‘error‘, (error) => {119 ????console.log(error)120 })121 ?122 ?123 //11. fs.createWriteStream ?写入文件流 ?124 var fs = require("fs");125 var data ?= "我是从数据库获取的数据,我要保存起来";126 var writerStream = fs.createWriteStream(‘output.txt‘);127 writerStream.write( data , ‘UTF8‘ );128 writerStream.end(); ?//标记文件末尾 ?结束写入流,释放资源 ?129 writerStream.on( ‘finish‘, ?function() {130 ????console.log("写入完成。");131 });132 writerStream.on( ‘error‘, ?function(error){133 ????console.log(error.stack);134 });135 console.log("程序执行完毕");136 ?137 ?138 //12. pipe 管道流 ?139 var fs = require("fs");140 var readerStream = fs.createReadStream( ‘input.txt‘);141 var writerStream = fs.createWriteStream( ‘output.txt‘);142 readerStream.pipe( writerStream );143 console.log("程序执行完毕");144 ?145 ?146 //13. fs.access 判断目录、文件是否存在(读写权限)147 var ?fs = require(‘fs‘);148 fs.access(‘package.json‘,(err)=>{149 ????console.log(err ? ?‘目录/文件不存在‘: ‘文件存在,可以进行读写‘);150 });151 ?
作者:houyanhua1
链接:https://blog.csdn.net/houyanhua1/article/details/79443987
来源:CSDN
Node.js——fs模块(文件系统),创建、删除目录(文件),读取写入文件流
原文地址:https://www.cnblogs.com/jokehl/p/9866317.html