Nodejs 是一个基于 Chrome V8 引擎的JavaScript 运行环境。
注意:
cd …切换到上一级目录
cd ..
fs 模块是 Node.js 官方提供的、用来操作文件的模块
。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。
如果要在JavaScript代码中,使用fs 模块来操作文件,则需要使用如下的方式先导入它
语法格式:
参数1:必选参数,字符串,表示文件的路径
参数2:可选参数,表示以什么编码格式来读取文件
参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果。
// 1.导入fs模块。操作文件
const fs = require('fs');
fs.readFile('data/test.txt', 'utf8', function (err, dataStr) {
console.log(err);//读取成功的结果
console.log(dataStr);//读取失败的结果
});
判断是否读取成功
const fs = require('fs');
// 判断文件读取是否成功
fs.readFile('data/testdsf.txt', 'utf8', function (err, dataStr) {
// 如果读取成功,则err的值为null
if (err) {
// 加个return可以终止程序
return console.log("文件读取失败:"+err.message);
}
console.log("文件读取成功:"+dataStr);//读取成功的结果
});
必选
参数,需要指定一个文件路径
的字符串,表示文件的存放路径必选
参数,表示要写入的内容。必选参数
,文件写入完成后的回调函数// 1.导入fs模块。操作文件
const fs = require("fs");
// 这个写入会覆盖之前的内容
//这个操作还会创建新文件
//异步
fs.writeFile('./data/test.txt', '现在是23.3.29', function (err, dataStr) {
if (err) {
// 如果写入成功 err的值为null null即为假,假不执行
return console.log("写入失败" + err);
}
console.log('写入成功:' + dataStr);//undefined
});
// 1.导入fs模块。操作文件
const fs = require("fs");
// appendFile写入不会会覆盖之前的内容
fs.appendFile('./data/test.txt', '我是追加进去的', function (err, dataStr) {
if (err) {
// 如果写入成功 err的值为null null即为假,假不执行
return console.log("写入失败" + err);
}
console.log('写入成功:' + dataStr);//undefined
}
// 导入fs
const fs = require('fs');
// 创建写入流对象
const ws=fs.createWriteStream('data/观书有感.txt');
// 写入
ws.write('半亩方糖一鉴开\n');
ws.write('天光云影共徘徊\n');
ws.write('问渠哪得清如许\n');
ws.write('为有源头活水来\n');
// 关闭,可以不写
ws.close();
console.log(__dirname);//输出的是所在文件夹的绝对路径
path 模块是 Node.js 官方提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求。
如果要在JavaScript代码中,使用 path 模块来处理路径,则需要使用如下的方式先导入它
const path=require('path');
使用 pathjoin()方法,可以把多个路径片段拼接为完整的路径字符串,语法格式如下:
// 注意:../返回上一级目录
const s=path.join('/a','/b/c','../../','./d','e');
console.log(s);//\a\d\e
const fs=require('fs');
fs.readFile(path.join(__dirname,'/data/观书有感.txt'),function (err, data) {
if (err) {
return console.log("读取失败:"+err);
}
console.log("读取成功:\n"+data);
})
使用 path.basename() 方法,可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名,语法格式如下:
// 导入path模块
const path = require('path');
// 定义文件存放路径
const road='data/观书有感.txt';
const fullName=path.basename(road);
console.log(fullName);//观书有感.txt
// 只获取文件名,不获取文件类型
const x=path.basename(road,'.txt');
console.log(x);
// 获取文件拓展名
const y=path.extname(road);
console.log(y);
Buffer 中文译为[缓冲区],是一个类似于 Array 的对象,用于表示固定长度的字节序列换句话说,Buffer 就是一段固定长度的内存空间,用于处理二进制数据
。
特点:
1.Buffer 大小固定且无法调整
2. Buffer 性能较好,可以直接对计算机内存进行操作
3. 3.每个元素的大小为1字节 (byte)
4.
buffer的创建:
// 1.alloc
let buf = Buffer.alloc(99);
console.log(buf);
console.log(buf.length);
// 2.allocUnsafe
let buf2 = Buffer.allocUnsafe(2);
console.log(buf2);
// 3.from
let buf3 = Buffer.from('李旭亮');
console.log(buf3.toString());