Node.js内置模块之fs模块

目录

一、简述

二、创建文件夹

三、读取文件

四、写入文件

五、拷贝文件

六、删除文件


一、简述

  fs模块是 Node.js官方提供的,用来操作文件的模块(读取/写入)。它提供了一些属性和方法,用来满足用户对文件的操作。

如果在js代码中,使用fs模块操作文件,则需要先使用require导入

const fs = require('fs');

运行方法

  在终端调用,文件路径要正确 然后加上 node  文件名  回车键运行

 

二、创建文件夹

 在当前目录下创建一个temp文件夹:

const fs = require('fs')

fs.mkdir('./temp',(err)=>{
    if(err){
        console.log(err.message)
        return 
    }
    console.log('创建文件夹成功')
})

三、读取文件

fs.readFile('文件名', (err, data) => {})

 参数1:读取的文件路径

 参数2:读取完毕的回调函数

// 先导入fs模块 
const fs = require('fs')

// 读取文件
// 参数1:读取的文件路径
// 参数2:读取完毕的回调函数 
fs.readFile('./1.txt', (err, data) => {
    // 如果读取成功err为空,如果读取失败err有值。 
    if (!err) {
        // 读取成功,data有值。 
        // 默认读取到的是这个文件的二进制(0 和1的组合) 的16进制的表现形式。
        // console.log('读取成功',data); 

        // 如果想把他转换成字符串,只需要调用toString()方法即可。 
        console.log('读取成功', data.toString());

    } else {
        // 读取失败,err有值。 
        console.log('读取失败', err);


    }
})

四、写入文件

  有两种情况

  1.会覆盖内容原本内容 fs.writeFile

    fs.writeFile('文件名', str, err => {})

   参数一:写入的文件路径(写入时不存在这个文件,会自动帮你创建)

   参数二:写入的内容

   参数三:回调函数(完成的回调函数)

const str = ` 
 大学生活很美好,切勿只在寝室耗。\n
 人际关系需看淡,提升自我是王道。\n
 莫看别人嬉戏闹,绩点分数最重要。\n
 学术代码乐趣多,自习室里最逍遥。\n
`

fs.writeFile('./1.txt', str, err => {

        if (err) {
            console.log('写入失败', err);
        } else {
            console.log('写入成功');
        }
    })
    // 如果写入时有这个文件,就是用新内容替换。

   创建一个名为index.html的文件,并写入一行字符串。

fs.writeFile('./index.html',"<h1>你好,中国</h1>",(err)=>{
    if(err){
        console.log(err.message)
        return 
    }
    console.log("创建写入文件成功")
})

     重写index.html,并为文件指定编码:

fs.writeFile('./index.html','<h2>面朝大海,春暖花开</h2>','utf-8',(err)=>{
    if(err){
        console.log(err.message)
        return 
    }
    console.log('写入指定格式文件成功')
})

   Node.js仅支持utf8 ucs2 ascii binary base64 hex这几种格式,对于GBK,GB2312等特殊格式需要使用额外的库(这里使用iconv-lite)。

const iconv = require('iconv-lite')
fs.writeFile('./style.css',iconv.encode('面朝大海,春暖花开','gbk'),(err)=>{
    if(err){
        console.log(err.message)
        return 
    }
    console.log("以GBK格式写入成功")
})

2.文件内容后面添加不覆盖原本的内容 fs.appendFile

     fs.appendFile('文件名', str, err => {})

   参数一:写入的文件路径(写入时不存在这个文件,会自动帮你创建)

   参数二:写入的内容

   参数三:回调函数(完成的回调函数)  

const str = ` 
 大学生活很美好,切勿只在寝室耗。\n
 人际关系需看淡,提升自我是王道。\n
 莫看别人嬉戏闹,绩点分数最重要。\n
 学术代码乐趣多,自习室里最逍遥。\n
`

//追加文件内容 不覆盖原本的内容
fs.appendFile('./1.txt', str, err => {
    if (!err) {
        console.log('追加成功');
    } else {
        console.log('追加失败')
    }
})

五、拷贝文件

fs.copyFile('要拷贝文件名', '文件名', err => {})

   参数一:写入的要拷贝文件路径

   参数二:写入的内容的文件路径(写入时不存在这个文件,会自动帮你创建)

   参数三:回调函数(完成的回调函数)  

//拷贝文件
fs.copyFile('./1.txt', './2.txt', err => {
    if (err) {
        console.log("文件拷贝失败,原因是:" + err);
        return;
    }
    console.log("文件拷贝成功")
})

六、删除文件

fs.unlink('文件名', err => {})

 参数一:要删除的文件路径

 参数二:回调函数

// //删除文件
fs.unlink('./2.txt', err => {
    if (!err) {
        console.log('删除成功')
    } else {
        console.log('删除失败');
    }
})


版权声明:本文为cn33333原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。