博客主要用于做笔记,有不理解的可以查询官方文档 http://nodejs.cn/api/
(1)同步事件的文件写入
let fs = require("fs") //引入fs模块
// 1. 打开 fs.openSync(path, flags[, mode])
let fd = fs.openSync("a.txt","w")
// 2. 写入 fs.writeFileSync(file, data[, options])
fs.writeSync(fd,"我有点烦")
fs.writeSync(fd,"我有点累")
// 3. 关闭 fs.closeSync(fd)
fs.closeSync(fd)
(2)异步事件的文件写入
let fs = require("fs") // 引入模块
// 1. 打开文件 fs.open(path, flags[, mode], callback)
// 回调有两个参数 (err, data),其中 data 是文件的内容
fs.open("b.txt","w", (err, fd) => {
// 1.1 判断是否出错
if(!err){
//写入数据 fs.writeFile(file, data[, options], callback)
fs.writeFile(fd,"今天天气很好",(err)=> {
if(!err){
console.log("写入成功");
}else {
throw err;
}
// 关闭文件
fs.close(fd,(err) => {
if(!err){
console.log("文件已经关闭");
}
})
})
}else{
throw err;
}
})
(3)写入流:用于大批数据的传输
let fs = require("fs")
// 1. 创建写入流 fs.createWriteStream(path[, options]),建立通道
let ws = fs.createWriteStream("c.txt")
// 2. 监听通道的打开关闭
ws.once("open",()=>{
console.log("通道已经打开");
})
ws.once("close",()=>{
console.log("通道已经关闭");
})
// 3. 数据写入
ws.write("今天心情一般般")
ws.write("有点无聊")
ws.write("有点烦")
// 4. 关闭通道
ws.end()
(4)文件的异步读取
let fs = require("fs")
// 创建文件 fs.readFile(path[, options], callback)
fs.readFile("a.txt",(err, data) => { // 从已存在的a.txt中读取,可以读取各种类型文件
if (!err) {
console.log(data.toString()); // 默认为二进制流,可以用toString转换
}else {
throw err;
}
});
(5)文件流读取和写入结合
let fs = require("fs")
// 1.创建写入流和读入流
let rs = fs.createReadStream("a.txt")
let ws = fs.createWriteStream("aa.txt")
// 2. 创建管道
rs.pipe(ws)