node核心模块1

一、同步&异步

所有的方法都有异步和同步的形式

node里关于文档的操作方法基本由异步和同步两种

使用前需导入核心模块fs

const fs = require("fs");

示例:

1.异步:

const fs = require("fs");
// 读取文件
fs.readFile("./fsfile.txt","utf8",(err,data)=>{
    if(err) {
        console.log("文件读取失败,原因是:"+err);
        return;
    } 
    console.log(data);
})
console.log("西游记孙悟空");

注:若此处不写utf8,则在输出中写data.toString()

终端输出结果:

因读取文件需要一定的时间,所以先输出console.log中的内容。

2.同步

const fs = require("fs");
const data = fs.readFileSync("./fsfile.txt","utf8")
console.log(data);
console.log("西游记孙悟空");

 终端输出结果:

 同步则是上一个任务完成,下一个才能执行。

二、文件操作

1.读文件fs.readFile()(上述已经说明)

2.写文件fs.writeFile()

默认就是utf8的编码格式

效果:删掉文档原内容,写入新内容,如果指定文档不存在,则新建

示例:

const fs = require("fs");
var text = "这是四大名著"
fs.writeFile("./fsfile.txt",text,err=>{
    if(err) {
        console.log("文件写入失败,原因:"+err);
        return;
    }
    console.log("文件写入成功");
})

终端输出:

此时内容已经被写入fsfile中,fsfile中原先内容已经被覆盖。

 3.追加fs.appendFile()

示例:

const fs = require("fs");
var text = "!中国历史上最著名的四本书籍"
fs.appendFile("./fsfile.txt",text,err=>{
    if(err){
        console.log("文件追加失败,原因:"+err);
        return;
    }
    console.log("文件追加成功");
})

 终端输出:

此时fsfile中的末尾应有

 4.拷贝fs.copyFile()

示例:

const fs = require("fs");
fs.copyFile("./file.txt", "./fsfile.txt", err => {
    if (err) {
        console.log("文件拷贝失败,原因:" + err);
        return;
    }
    console.log("文件拷贝成功");
})

终端输出

此时,fsfile中的内容已经改变成file中的内容:

三、流操作

1、读取流

一般读取的是大文件 

示例:

const fs = require("fs");
const rs = fs.createReadStream("./file.txt", { encoding: "utf8" });
rs.on("open", () => {
    console.log("读取流 open");
})
let text = '';
rs.on("data", chunk => {
    // chunk是一个buffer,当前读取的数据片段,二进制数据流
    // count++;
    // console.log(count);
    // 拼接
    text+=chunk;
})
rs.on("end",()=>{
    console.log("文件读取end");
    console.log(text);
})
rs.on("close",()=>{
    console.log("读取流 close");
})

终端输出:

 2.写入流

示例:

const fs = require("fs");
const ws = fs.createWriteStream("./fsfile.txt");
ws.write("叮叮当,叮叮当");
ws.end();
ws.on("open", () => {
    console.log("可写流开启");
})
ws.on("close", () => {
    console.log("可写流关闭");
})

终端输出

 此时,已经把内容写入到fsfile中去了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值