引入方式都是一样的通过require引入
throw抛出一个错误,阻止程序运行并把错误打到控制台
promise等fs基础的操作了解完看这个
let fs=require("fs");let http=require("http");//删除文件try{fs.unlinkSync("1.txt")console.log("同步删除文件成功")}catch(err){console.log("同步删除错误:"+err)}fs.unlink("2.txt",(err)=>{if(err){console.log("异步删除错误:"+err)} else{console.log("异步删除文件成功")}})fs.rename("3.txt","4.txt",(err)=>{//重命名if(err){console.log("异步重命名错误:"+err)} else{console.log("异步重命名成功")fs.stat('4.txt', (err, stats) => {if (err) throw err;console.log(`文件属性: ${JSON.stringify(stats)}`);});}})fs.readFile("文件",(err,data)=>{if(!err){console.log(`同步读取出的内容:${data.toString()}`)}else{console.log(`同步读取文件出错:${err}`)}})try{let data = fs.readFileSync('6.txt');console.log("同步读取: " + data.toString());}catch(data){console.log("同步读取失败: " + data.toString());}fs.stat('4.txt', function (err, stats) {console.log(`异步读取文件信息:${stats}`); //true// stats.isFile() 如果是文件返回 true,否则返回 false。// stats.isDirectory() 如果是目录返回 true,否则返回 false。// stats.isBlockDevice() 如果是块设备返回 true,否则返回 false。// stats.isCharacterDevice() 如果是字符设备返回 true,否则返回 false。// stats.isSymbolicLink() 如果是软链接返回 true,否则返回 false。// stats.isFIFO() 如果是FIFO,返回true,否则返回 false。FIFO是UNIX中的一种特殊类型的命令管道。// stats.isSocket() 如果是 Socket 返回 true,否则返回 false。//r 以读取模式打开文件。如果文件不存在抛出异常。// r+ 以读写模式打开文件。如果文件不存在抛出异常。// rs 以同步的方式读取文件。// rs+ 以同步的方式读取和写入文件。// w 以写入模式打开文件,如果文件不存在则创建。// wx 类似 'w',但是如果文件路径存在,则文件写入失败。// w+ 以读写模式打开文件,如果文件不存在则创建。// wx+ 类似 'w+', 但是如果文件路径存在,则文件读写失败。// a 以追加模式打开文件,如果文件不存在则创建。// ax 类似 'a', 但是如果文件路径存在,则文件追加失败。// a+ 以读取追加模式打开文件,如果文件不存在则创建。// ax+ 类似 'a+', 但是如果文件路径存在,则文件读取追加失败。})fs.writeFile("file.txt", "1231231",{flag:"a"}, (err)=>{if(err){return console.error(err);}else{console.log("写入成功~!")}})fs.open('4.txt', 'r+', function(err, fd) {//fd文件描述符代表了被打开的文件if (err) {return console.error(err);}console.log(`open:${fd}`);fs.close(fd, ()=>{console.log(`文件被关闭了文件操作符是:${fd}`)}) //关闭文件fs.open('4.txt', 'r+', function(err, fd) {//fd文件描述符代表了被打开的文件if (err) {return console.error(err);}console.log(`open:${fd}`);});});
比较难的read还没看。
