千家信息网

Node的文件系统有哪些内容

发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,今天小编给大家分享一下Node的文件系统有哪些内容的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来
千家信息网最后更新 2025年11月11日Node的文件系统有哪些内容

今天小编给大家分享一下Node的文件系统有哪些内容的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

    一、Node的文件系统

    1、FS(FileSystem):实现对文件的IO操作。fs是Node的模块,需要导入

    var fs = require('fs');

    2、同步和异步

    (1)同步:程序在涉及到文件IO时,必须等到文件IO操作结束后再执行后续的操作。

    (2)异步:程序在涉及到文件IO时,不等待文件IO操作结束,继续执行后续的操作,当文件IO操作结束后系统会通知程序处理文件 IO的结果。

    3、回调函数

    "回调"即"回头调用";"回调函数"是指函数定义后并不立即调用,而是等到某个事件被触发时再调用。具有异步特性

    4、fs模块的常用函数

    (1)读文件

    A、readFile():用于异步读取数据。 - - - - 非阻塞方式读

    fs.readFile(fileName, function (err, buffer) {//异步读取文件  if (err) throw err;//处理文件的代码   process(buffer);});

    "filename":文件名(包含路径)

    "function(err,buffer)":回调函数,'err'存放的是读文件失败的信息;'buffer'存放文件的内容

    B、readFileSync():用于同步读取文件,返回一个字符串。- - - -阻塞方式

    var text = fs.readFileSync(fileName, 'utf8');

    readFileSync(filename,'utf8')//同步读文件,函数的返回值是字符串(文件内容)

    第二个参数:用来指定字符集,若不指定则函数返回Buffer;若指定则返回字符串

    //创建input.txt山海皆可平新年快乐
    //创建read,js//1.导入fs模块const fs = require('fs');//2.异步读取fs.readFile('input.txt',function (err,buf) {    if(err){        return console.error(err)    }    console.log("异步读文件:",buf.toString())})console.log('2022-1-2')//    2022-1-2//    异步读文件: 山海皆可平//    新年快乐
    //1.导入fs模块const fs = require('fs');//3.同步读取let str = fs.readFileSync('input.txt','utf8');console.log("同步读文件:",str);console.log('2022-1-2')//    同步读文件: 山海皆可平//    新年快乐//    2022-1-2
    (2)打开文件
    fs.open(path, flags[, mode], callback)

    open(path, flags[, mode], callback)

    'path':文件名(包含路径)

    'flags':打开文件的方式

    'mode':设置文件模式,但前提是已创建该文件。它默认为0666,读取和写入

    'callback':这是回调函数,有两个参数(err, fd)

    --'r':以只读方式打开文件,若文件不存在则报异常

    --'w':为写打开文件,若文件则创建文件

    --'a':向文件中追加内容,若文件则创建文件

    --'rs':同步方式打开文件

    //1.导入fs模块const fs = require('fs');fs.open('input.txt','r+',function (err,fd) {    if(err){        return console.error(err)    }    console.log("fd:",fd);    console.log('打开文件成功!');})//    fd: 3//    打开文件成功!
    (3)获取文件信息

    是一个对象,包含文件或目录(文件夹)的具体信息。通过该对象可以判断当前处理的是对象还是目录

    fs.stat(path, callback)

    'path': 文件名,包括路径字符串。

    'callback':回调函数得到两个参数(err, stats)

    //1.导入fs模块const fs = require('fs');fs.stat('text',function (err,stats) {    if (err){        return console.error(err)    }    console.log("文件状态:",stats);    //检查    console.log("isFile? ----",stats.isFile()) //判断对象是否是文件    console.log("isDirectory?----",stats.isDirectory())//判断对象是否是目录})// 文件状态: Stats {//     dev: 3959906401,//         mode: 16822,//         nlink: 1,//         uid: 0,//         gid: 0,//         rdev: 0,//         blksize: 4096,//         ino: 27584547718321690,//         size: 0,//         blocks: 0,//         atimeMs: 1645523918307.2014,//         mtimeMs: 1645523918307.2014,//         ctimeMs: 1645523918307.2014,//         birthtimeMs: 1645523918307.2014,//         atime: 2022-02-22T09:58:38.307Z,//         mtime: 2022-02-22T09:58:38.307Z,//         ctime: 2022-02-22T09:58:38.307Z,//         birthtime: 2022-02-22T09:58:38.307Z// }// isFile? ---- false//     isDirectory?---- true
    (4)写入文件
    fs.writeFile(filename, data[, options], callback)

    A、writeFile --- 异步写入文件

    'filename' : 文件名,包括路径字符串

    'data':字符串或缓冲区将被写入到文件中

    'options': 一个对象,用于指定编码格式。默认编码是UTF8。

    'callback': 回调函数获取一个参数err,用于在发生任何写入错误时返回错误。

    const  fs = require('fs');//1.向input.txt中写入内容fs.writeFile('input.txt','云与海',function (err) {    if(err){        return console.error(err)    }    console.log('写入文件成功!');})

    B、writeFileSync(fileName, data, 'utf8'); //同步写

    fs.writeFileSync(fileName, str, 'utf8');
    (5)读取文件(以二进制方式读)
    fs.read(fd, buffer, offset, length, position, callback)

    'fd':是文件的描述符,由open函数返回

    'buffer':缓冲区。存放从二进制文件读取的内容

    'offset':偏移量。写入缓冲区的位置

    'length':读取的字节数

    'position':表示从文件的某个位置读。默认从当前位置开始

    'callback':回调函数

    const  fs = require('fs');//读取二进制文件var buf = new Buffer(1024);fs.open('input.txt','r+',function (err,fd) {    if(err){        return console.error(err)    }    console.log('打开文件成功!')    fs.read(fd,buf,0,buf.length,0,function (err,bytes) {        if (err){            return console.error(err);        }        if(bytes > 0){            let str = buf.slice(0,bytes).toString();            console.log("读取的内容是:",str);        }    })    console.log('----End----');})//     打开文件成功!//     ----End----//     读取的内容是: 离离原上草,一岁一枯荣
    (6)关闭文件
    close(fd, callback)
    const  fs = require('fs');//读取二进制文件var buf = new Buffer(1024);fs.open('input.txt','r+',function (err,fd) {    if(err){        return console.error(err)    }    console.log('打开文件成功!')    fs.read(fd,buf,0,buf.length,0,function (err,bytes) {        if (err){            return console.error(err);        }        if(bytes > 0){            let str = buf.slice(0,bytes).toString();            console.log("读取的内容是:",str);        }    })    fs.close(fd,function (err) {        if (err){            return console.error(err)        }        console.log('文件关闭成功!')    })    console.log('----End----');})//     打开文件成功!//     ----End----//     读取的内容是: 离离原上草,一岁一枯荣//     文件关闭成功!
    (7)创建目录(文件夹)
    mkdir(path[, mode], callback)

    'path':要创建的包括路径的目录名

    'mode':目录的权限,默认是可读可写

    callback':回调函数

    const  fs = require('fs');fs.mkdir('./yunxi',function (err) {    if (err){        return console.error(err)    }    console.log('创建目录成功!')})
    (8)删除目录
    rmdir(path, callback)
    const  fs = require('fs');fs.rmdir('./text',function (err) {    if (err){        return console.error(err)    }    console.log('删除成功!')})
    (9)读取目录
    readdir(path, callback)

    'path':目录名

    'callback':回调函数,有两个参数(err,files),'files'是列表,当中放的是当前目录下的文件或文件夹名称

    onst  fs = require('fs');fs.readdir('./yunxi',function (err,files) {    if (err){        return console.error(err)    }    files.forEach(function (file) {        console.log(file)    })})//    demo.css//    exam.ts//    zhou
    (10)文件拷贝

    copyFile(源文件,目标文件,回调函数)

    const  fs = require('fs');fs.copyFile('./input.txt','./target.txt',function (err) {    if (err){        return console.error(err)    }    console.log('文件拷贝成功!')})//target文件中拷贝了input文件里的内容
    (11)给文件中追加内容
    appendFile(filename,content,callback)

    'content':追加的内容

    const  fs = require('fs');let content = "\n野火烧不尽,\n春风吹又生";fs.appendFile('./input.txt',content,function (err){    if (err){        return console.error(err)    }    console.log('追加内容成功!');})//input文件中的内容是:离离原上草,一岁一枯荣。野火烧不尽,春风吹又生。
    (12)删除文件
    unlink(path, callback)

    'path':带路径的文件名

    allback':回调函数,没有参数

    const  fs = require('fs');fs.unlink('./target.txt',function (err) {    if (err){        return console.error(err)    }    console.log('删除文件成功!')})
    (13)文件重命名
    rename(oldPath, newPath, callback)

    'oldPath':原文件名

    'newPath':新文件名

    'callback':回调函数

    const  fs = require('fs');fs.rename('./input.txt','./yunxi.txt',function (err){    if (err){        return console.error(err)    }    console.log('重命名成功!')})//将input文件重命名为yunxi

    以上就是"Node的文件系统有哪些内容"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

    文件 内容 函数 成功 目录 同步 字符 文件名 参数 字符串 对象 方式 模块 路径 系统 知识 篇文章 快乐 两个 二进制 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发能做多少年 网络安全手抄报 图片简单 涉及网络安全的院校 民航国内十大网络安全事件 云数据库慢查询如何解决 软件开发如何改行 IT软件开发基础课程 口碑好的网络技术优化 互联网创新科技排行 为什么要去做软件开发 网络安全离我们有多远中国公开课 万通网络技术有限公司 数据库的安全和完整性小结 网页怎么连接服务器 网络安全培训邀请函 网络安全工程师需要什么职业性格 实体服务器安装数据库 漯河软件开发网上价格 切实增强网络安全工作的 有哪些最新的数据库新技术 大学软件开发视频 服务器硬盘满了会有什么影响 服务器遭遇地震硬盘怎么办 进销存订单退货数据库设计 计算机软件开发高中选课 软件开发需求分析考虑那些 网络安全思修论文 沈阳系统集成工程网络安全 2020年网络安全隐患 怎么查外汇服务器所在地
    0