node_fs模块
-
文件内容读取:fs.readFile();
const fs =require("fs"); /* 文件内容读取: 参数1:文件路径和名字 参数2:可选,文件的格式类型 参数2:所有异步函数都有的回调函数=> 第1个参数:错误对象 第2个参数:读取到的数据内容 */ fs.readFile( "./007.txt", "utf8", (err,data)=>{ if (err){ console.log("文件没读取成功:",err); return; }else{ console.log("恭喜文件读取成功,内容为:",data); } } );
-
文件内容写入\修改\创建:fs.writeFile()
const fs = require("fs"); /* 给文件写入内容: 文件不存在:那就创建文件 文件已存在:那就修改文件(重新写入的内容默认是覆盖原来的内容) 参数1:写入的文件路径和名字 注:不能创建一个不存在的文件夹,只能创建一个不存在的文件 参数2:写入的内容 参数3:options(选项) { encoding:默认utf8, mode:默认0o666, flag:默认w覆盖 a -打开文件用于追加。如果文件不存在,则创建该文件。 ax -与‘a'相似,但如果路径已存在则失败。 a+ -打开文件用于读取和追加。如果文件不存在,则创建该文件。 ax+ -与'a+'相似,但如果路径已存在则失败。 as -以同步模式打开文件用于追加。如果文件不存在,则创建该文件。 as+ -以同步模式打开文件用于读取和追加。如果文件不存在,则创建该文件。 r -打开文件用于读取。如果文件不存在,则出现异常。 r+ -打开文件用于读取和写入。如果文件不存在,则出现异常。 rs+ -以同步模式打开文件用于读取和写入。指示操作系统绕过本地的文件系统缓存。 w -打开文件用于写入。如果文件不存在则创建文件,如果文件已存在则截断文件。 wx -与'w'相似,但如果路径已存在则失败。 w+ -打开文件用于读取和写入。如果文件不存在则创建文件,如果文件已存在则截断文件。 wx+ -与'以”相似, 但如果路径已存在则失败。 } 参数4:回调函数 */ fs.writeFile( "./goudan.txt", "\n\r我是刚刚写入的内容--", { encoding:"utf8", flag:"a" }, (err)=>{ if(err){ console.log("写入出错了",err); }else{ console.log("写入成功"); }; }, );
-
删除文件:fs.unlink()
const fs = require("fs"); /* 删除文件:只能删除文件不能删除目录 参数1:文件路径和名字 参数2:回调函数 */ fs.unlink( "./sherry.png", (err)=>{ if(err){ console.log("未找到文件或者目录",err); }else{ console.log("文件已经成功删除"); } }, );
-
重命名/移动 文件或者文件夹:fs.rename()
const fs =require("fs"); /* *修改文件名:重命名/移动 文件或者文件夹 参数1:原文件路径和名字 参数2:新文件路径和名字 参数3:回调函数: */ //重命名 fs.rename( "./007.md", "./007.txt", (err)=>{ if(err) { console.log("没找到文件或者目录:",err); //失败提示 return; }else{ console.log('恭喜修改成功!'); //成功提示 } } ); //移动文件:注:移动到的目录必须存在,不然移动失败,不会自动创建文件夹 fs.rename( "./007.txt", "./app/007.txt", (err)=>{ if(err) { console.log("没找到文件或者目录:",err); //失败提示 return; }else{ console.log('恭喜修改成功!'); //成功提示 } } ); //移动文件夹:将css文件夹移动到app文件夹里面去 fs.rename( "./css", "./app/css", (err)=>{ if(err) { console.log("没找到文件或者目录:",err); //失败提示 return; }else{ console.log('恭喜移动成功!'); //成功提示 } } );
-
读取目录:fs.readdir()
const fs = require("fs"); /* 读取目录: 参数1:被读取的路径 参数2:回调函数: 失败:err 成功:data 目录以数组形式展示 */ fs.readdir( "./", (err,data)=>{ if(err){ console.log("读取失败:",err); }else{ console.log("文件目录为:",data); data.forEach( item=>{console.log(item);}); //可以将data里面的内容遍历 } }, );
-
创建目录:fs.mkdir()
const fs = require("fs"); /* 创建目录: 参数1:文件夹路径 参数2:回调函数: */ fs.mkdir( "./ds/gg", //注意:创建文件夹只能在已经有的目录下面创建文件夹,若目录不存在,不能创建文件夹 (err)=>{ if(err){ console.log("创建失败:",err); }else{ console.log("创建成功:"); } }, );
-
删除文件夹:fs.rmdir()
const fs = require("fs"); /* 删除文件夹:只能删除空文件夹,不能删除非空文件夹 */ fs.rmdir( "./css", (err)=>{ if(err){ console.log("删除失败:",err); }else{ console.log("删除成功:"); } }, );
-
读取当前文件夹信息:fs.stat()
const fs = require("fs"); fs.stat( "./008.txt", (err,stats)=>{ if(err) return; // console.log(state); console.log(stats.isDirectory()); //是否是文件夹 console.log(stats.isFile()); //是否是文件 }, );
-
同步API
/* 大部分的异步api都有对应的同步api 一般都是异步api的后面加上Sync 就是同步的api 同步aip没有回调函数 */ const fs = require("fs"); //异步代码:异步代码不阻碍后面代码执行 fs.readFile( "./008.txt", "utf8", (err,data)=>{ if(err)return; console.log(data); }, ); //同步代码:同步代码阻碍后面代码执行,异步代码不阻碍后面代码执行,同步代码优先于异步代码执行 let data; try{ data = fs.readFileSync("./0071.txt","utf8",); //同步代码需要这里完成后,才执行后面的代码 }catch (err){ throw new Error("没找到文件:",err); } //同步代码通过try catch 来进行抛错 console.log(data); console.log(1); //先打印1 在打印data js执行队列:要先把同步代码执行完成了后才会回头看异步任务是否完成