fs是file-system的简写,文件系统的意思。在Node中如果想要进行文件操作,就必须引入fs这个核心模块。

引入

const fs = require('fs')

fs.readFile(path[, options], callback)

  • path:要读取的文件路径
  • options:可选
    • encoding,指定字符编码
  • callback:回调函数,有两个参数,err和data
    • err:读取失败返回错误对象,读取成功返回null
    • data:读取成功返回读到的数据,否则返回undefined

比如文件路径错误时:err打印出错误对象,data为undefined

const fs = require('fs')

fs.readFile('./1.txt', function (err, data) {
console.log(err)
console.log(data)
}) //{ [Error: ENOENT: no such file or directory, open './1.txt'] errno: -2, code: 'ENOENT', syscall: 'open', path: './1.txt' }
// undefined

文件路径正常且读取成功时:

// null
// <Buffer 68 65 6c 6c 6f>

1.txt中文件读取成功并返回了buffer。文件中原本存储的是二进制数据0和1,二进制转为16进制即buffer。如果想转成我们认识的字符,可以通过toString()方法:

const fs = require('fs')

fs.readFile('./1.txt', function (err, data) {
console.log(data.toString())
}) // hello

或者通过字符编码

const fs = require('fs')

fs.readFile('./1.txt', 'utf8', function (err, data) {
console.log(data)
}) // hello

在读文件时建议做容错,避免读取错误data取不到报错

fs.readFile('./1.txt', function (err, data) {
if (err) {
console.log(err)
} else {
console.log(data.toString())
}
})

fs.writeFile(file, data[, options], callback)

  • file:要写入的文件路径
  • data:要写入的内容
  • options:可选
  • callback:回调函数
    • err:写入成功时为null,写入错误时为错误对象
fs.writeFile('./2.txt', '你好', function (err) {
if (err) {
console.log(err)
} else {
console.log('写入成功')
}
})

如果当前目录中有2.txt,会写入“你好”,如果当前目录中没有这个文件,会创建文件并写入

fs.readdir(path[, options], callback)

  • path:路径
  • option:可选
  • callback:回调函数
    • err
    • files 目录中文件名的数组

读取目录的内容

const fs = require('fs')
fs.readdir('/Users/lianglanlan/Desktop/code/study/node/www', (err, files) => {
if (err) {
return console.log('目录不存在')
}
console.log(files) //[ 'a.txt', 'apple', 'index.html', 'index1.html' ]
})

fs.existsSync(path)

  • path:路径
  • 返回值:布尔类型

如果路径存在,返回true,否则返回false

const fs = require('fs')
if (fs.existsSync('./1.txt')) {
console.log('该路径已存在');
}

fs.statSync(path[, options])

  • path:路径

返回fs.stats类

fs.stats类

提供关于文件的信息

stats.isDirectory()

如果是目录,则返回true

Node.js核心模块-fs文件系统的更多相关文章

  1. node.js核心模块

    全局对象 global 是全局变量的宿主 全局变量 在最外层定义的 全局对象的属性 隐士定义的变量(未定义直接赋值的变量) 当定义一个全局变量时 这个变量同时也会成为全局对象的属性 反之亦然 注意: ...

  2. node.js常用的fs文件系统

    fs文件系统模块对于系统文件及目录进行一些读写操作. 模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync(). 异步的 ...

  3. Node.js核心模块-http

    通过node中的http模块可以创建编写服务器 引入 const http = require('http') http举例使用: const http = require('http') //引入 ...

  4. 10.Node.js核心模块

    1.全局对象2.常用工具3.事件机制4.文件系统访问5.HTTP服务与客户端 一.全局对象(Global Object), 与window对象一样 process ==> 全局变量, 描述当前N ...

  5. Node.js核心模块_全局变量、util学习

    全局对象 javascript的全局对象是window,他及其所有属性都可以在程序的任何地方访问.即全局变量. 而在node中全局对象是global,所有全局变量都是global对象的属性,包括其本身 ...

  6. Node.js核心模块API之文件操作

    参考:https://www.runoob.com/nodejs/nodejs-fs.html 异步I/O 1,文件操作 2,网络操作 在浏览器中也存在异步操作 1,定时任务 2,事件处理 3,Aja ...

  7. Node.js中的fs文件系统

    fs.stat 检测是文件还是目录 fs.mkdir 创建目录 fs.writeFile 创建写入文件 fs.appendFile 追加文件 fs.readFile 读取文件 fs.readdir 读 ...

  8. Node.js核心模块-net

    net.Socket 类 socket.remotePort 访问服务器的远程端口 const http = require('http'); const server = http.createSe ...

  9. Node.js核心入门

    前言: 因为以前学习Node.js并没有真正意义上的去学习它,而是粗略的学习了npm的常用命令和Node.js一些模块化的语法,因此昨天花了一天的时间看了<Node.js开发指南>一书.通 ...

随机推荐

  1. qt creator源码全方面分析(2-1-1)

    目录 C++的策略/二进制兼容性问题 定义 ABI注意事项 可做与不可做 库程序员的技巧 位标志 使用d指针 故障排除 在没有d指针的情况下将新数据成员添加到类中 添加已重新实现的虚函数 使用新类 向 ...

  2. java核心技术----访问权限

    Java支持四种不同的访问权限: 修饰符 说明 public 共有的,对所有类可见 protected 受保护的,对同一包内的类和所有子类可见 private 私有的,在同一类内可见 默认的 在同一包 ...

  3. 如何在网页读取用户IP,操作系统版本等数据demo

    我们浏览网页的时候,会不经意间看到,有些地方(如个人的签名档)显示出了个人的IP,操作系统等数据.借助第三方API和请求报头useragent是很容易实现的. <html> <hea ...

  4. MybatisDao

    一.mybatisDao的编写(原始方式,不用) 1.接口编写 public interface UserDao { public void save(User user); public User ...

  5. 使用自环接口的UDP服务器和客户端

    import argparse,socket from datetime import datetime MAX_BYTES = 65535 def server(port): sock = sock ...

  6. [python]locals内置函数

    locals() Update and return a dictionary representing the current local symbol table. Free variables ...

  7. LeetCode22 生成所有括号对

    本文始发于个人公众号:TechFlow,原创不易,求个关注 链接 Generate Parentheses 难度 Medium 描述 Given n pairs of parentheses, wri ...

  8. 小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据

    在家为国家做贡献太无聊,不如跟我一起学点 Python 人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Panda ...

  9. react项目中引用amap(高德地图)坑

    最近在写一个react项目,用到了需要定位的需求,于是乎自己决定用高德地图(AMap),但是react官方文档的案列很少,大多都是原生JS的方法. 在调用amap的 Geocoder Api 时,一直 ...

  10. rm -f 后如何恢复

    前言 每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,然后就要准备跑路了,毕竟人不是机器,更何况机器也有bug,呵呵. 那么如果真的删除了不该删除的文件,比如数据库. ...