node.js->fs模块

99 阅读1分钟

node.js image.png

创建一个buffer

let buf = Buffer.alloc(10)

console.log(buf);
<Buffer 00 00 00 00 00 00 00 00 00 00>

let buf2 = Buffer.from("hello")
<Buffer 68 65 6c 6c 6f>

fs模块

fs模块可以实现与硬盘的交互,例如文件的创建,删除,重命名,移动。还有文件内容的写入,读取,以及文件夹的相关操作。

文件写入

// 异步写入
const fs = require("fs")

fs.writeFile("座右铭", '人生若只如初见', err => {
    if (!err) {
        console.log("文件写入成功")
    }
})
// 同步写入
fs.writeFileSync("座右铭2.txt", '人生若只如初见')

// 追加,异步写法
fs.appendFile('座右铭.txt', "\r\n人生若只如初见", err => {
    if (!err) {
        console.log("文件内容追加成功")
    }
})

// 流体式写法
// 流体态写法
const crs = fs.createWriteStream('静夜思.txt')
crs.write("床前明月光/r/n")
crs.write("疑是地上霜/r/n")
crs.write("举头望明月/r/n")
crs.write("低头思故乡/r/n")

crs.end();

// 流体式读取
console.log("开始流体式读取")
const crs = fs.createReadStream("./静夜思.txt")

crs.on("data", chunk => {
    console.log(chunk.toString())
})

crs.on("end", (err) => {
    if (!err) {
        console.log("读取完毕")
    }
})

// 复制文件-> readfile写法
// 复制文件
fs.readFile("./静夜思.txt", (err, data) => {
    if (!err) {
        fs.writeFileSync("./复制静夜思2.txt", data);
    }
})

// 开始读取文件
fs.readFile("./复制静夜思2.txt", (err, data) => {
    if (!err) {
        console.log("读取静夜思文件\r\n",data.toString())
    }
})

// 复制文件-》流体式写法
// 复制文件
const c_fs = fs.createReadStream("./静夜思.txt")
const c_ws = fs.createWriteStream("./复制静夜思3.txt")

c_fs.on("data", chunk => {
    c_ws.write(chunk)
})

c_fs.on("end", err => {
    if (!err) {
        c_ws.end();
        console.log("文件复制结束")
    }
})

// 更改文件名
// 更改文件名
fs.rename("./座右铭.txt", "./更改座右铭.txt", (err) => {
    if (!err) {
        console.log("文件名更改成功")
    }
})
// 移动文件本质跟更改文件名的性质是一样的

// 删除文件
fs.unlink("./座右铭2.txt", (err) => {
    if (!err) {
        console.log("删除文件成功")
    } else {
        console.log("删除文件失败")
    }
    return;
})
fs.rm("./复制静夜思2.txt", err => {
    if (!err) {
        console.log("删除文件成功")
    } else {
        console.log("删除文件失败")
    }
})