Node.js 学习笔记之fs模块

fs模块初识

在对nodejs进行学习时,首先要了解的就是fs文件模块。
fs模块就是文件系统模块,file system(文件系统) fs模块是node内置的核心模块,指nodejs 可以直接操纵一些文档。

介绍第一种操作

读取文件

readFile 可以对文件内容进行读取
首先我们需要对fs模块进行引入

let fs = require('fs');

利用require(’’)可以请求到node内置或引入的模块。
readFile操作的基本格式为

fs.readFile('url',function (err,data) {
    console.log(data,err);
})

readFile中共有两个参数, fs.readFile(文件的路径,回调函数)。回调函数中的两个参数 err,data分别存放报错信息和读到的数据。
创建一个data.js,里面随便放一些数据
例如

let a = 10;
let b = 20;

创建readFile.js,里面写入

//请求fs模块
let fs = require('fs');
//读取文件
fs.readFile('./data.js',function (err,data) {
    console.log(data,err);
})

运行文件后得到

<Buffer 6c 65 74 20 61 20 3d 20 31 30 3b 0d 0a 6c 65 74 20 62 20 3d 20 32 30 3b 0d 0a> null

可以发现data有数据,且err为null,说明读取成功。

Buffer

虽然上个例子中文件读取成功,但返回值是我们无法识别的值,而这个值为buffer值。
我们来看菜鸟教程中关于buffer的解释

JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。
但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。
Buffer 实例一般用于表示编码字符的序列,比如 UTF-8 、 UCS2 、 Base64 、或十六进制编码的数据。 通过使用显式的字符编码,就可以在 Buffer 实例与普通的 JavaScript 字符串之间进行相互转换。

简单来讲,buffer就是为了处理二进制文件而存在的数据类型。

<Buffer 6c 65 74 20 61 20 3d 20 31 30 3b 0d 0a 6c 65 74 20 62 20 3d 20 32 30 3b 0d 0a>

buffer中的值为十六进制的值,如果想要看到buffer格式数据真正表示的值,可以通过toString()方法进行转换。

let fs = require('fs');

fs.readFile('./data.js',function (err,data) {
    console.log(data.toString(),err);
})

运行文件后得到结果

let a = 10;
let b = 20;
 null

知道了怎么把一个buffer格式数据转换为字符串类型,那么怎么将字符串类型转化为buffer格式?

Buffer.from(’’)

利用Buffer.from(’’)方法可以将字符串类型数据转化为buffer类型。

写入文件

介绍完读取文件,接下来学习如何写文件
利用writeFile(’’)即可向一个文件内部写入数据,格式为

fs.writeFile('filename','data',function(err){
    console.log(err)
})

writeFile方法可与readFile方法配合使用来完成读取一个文件并写入到另一个文件中

fs.readFile('../1.txt',function(err,data){
     fs.writeFile('2.txt',data,function(err){})
 })

这段代码可以理解为读取上层目录的1.txt文件并将其内容保存为当前目录下的1.txt文件

删除文件

我们可以使用unlinkSync进行文件的删除。

 fs.unlinkSync('filename')

使用方法为直接在函数里写文件名即可

创建文件夹

mkdirSync可以创建一个文件夹

fs.mkdirSync('')

删除指定的文件夹

fs.rmdirSync可以删除指定的文件夹

fs.rmdirSync('')

读取指定文件夹的数据

fs.readdir可以读取指定文件夹下有哪些数据

  fs.readdir('F://Program Files (x86)',function(err,data){
    console.log(err,data)
 })

运行代码后可以看到

在这里插入图片描述
对文件夹和文件都进行了读取

读取文件信息

statSync可以读取文件的信息,包括创建时间,大小等

console.log(fs.statSync('D:/Windows 7 Documents/Desktop/1.mp4'));

判断文件是否存在

existsSync可以判断一个文件是否存在并返回布尔值,存在返回true,不存在返回false

 console.log(fs.existsSync('./buffer1.js'));

修改文件路径

rename方法可以对文件路径进行修改,也可以修改文件名

//rename(老路径,新路径,回调函数)  
//把原来的文件从老路径移到新路径 并且修改文件名
fs.rename('D:/Windows 7 Documents/Desktop/1.js','./buffer.js',function (err,data) {
     console.log(err, data);
      })

新文件文件名与老文件相同 = 更改文件路径
新文件文件名与老文件不同 = 更改文件名称
新文件文件名、路径与老文件文件名、路径不同 = 更改文件位置和名称

发布了11 篇原创文章 · 获赞 0 · 访问量 563

猜你喜欢

转载自blog.csdn.net/weixin_44845533/article/details/104405611