NodeJs基础
一、buffer基本操作
buffer对象是Node处理二进制数据的一个接口,可以直接使用,不需要require(‘buffer’)
实例化
- Buffer.from(array)
- Buffer.from(string)
- Buffer.alloc(size)
功能方法
- Buffer.isEncoding() 判断是否支持该编码
- Buffer.isBuffer() 判断是否为Buffer
- Buffer.byteLength() 返回指定编码的字节长度,默认utf8
- Buffer.concat() 将一组Buffer对象合并为一个Buffer对象
实例方法
- write() 向buffer对象中写入内容
- slice() 截取新的buffer对象
- toString() 把buf对象转成字符串
- toJson() 把buf对象转成json形式的字符串
二、路径操作
1.首先引入path
const path=require("path")
2.然后可以使用相关的api
- 获取路径的最后一部分
path.basename(path,'')
- 获取路径
__dirname
path.diranme('path')
- 获取文件的拓展名
path.extname("index.html")
- 路径的格式化处理
path.format()将对象转成字符串
path.parse()将字符串转成对象
let obj=path.parse(__filename)
console.log(obj)
/*
{
root:''文件的跟路径,
dir:'',文件的全路径
base:''文件的名称
ext:''拓展名
name:''文件名称
}
*/
- 拼接路径
path.join([...paths])
//在拼接的过程会解析,会格式化处理
//两个点表示上层路径,一个点表示当前的路径
- 规范化路径
path.normalize()
- 计算相对路径
path.relative(from,to)
- 解析路径
path.resolve([...paths])
- 表示路径分隔符,windows上是右斜杠,Linux是左斜杠
path.delimiter
- 环境变量分隔符,windows使用;Linux使用:
path.sep
三、文件操作
先引入const fs=require(""fs)
fs.stat('./data.txt',(err,stat)=>{
//一般回调函数第一个参数是错误对象,如果err为null,表示没有错误,否则标识报错了
if(err) return
})
2. 判断是否是文件
stat.isFile()
3. 判断是否是目录
stat.isDirectory()
4. 读取文件的api
//file可以是文件的名称,可以结合path找到这个文件的路径
//[.options]是可选的,如果有第二个参数并且是编码,那么回调函数得到的数据就是字符串;如果没有第二个参数,那么得到的就是buffer实例对象
//callback(err,data)有两个参数
fs.readFile(file,[.options],callback)
四、文件流式操作(大文件操作)
fs.createWriteStream(path,[.options])
fs.createReadStream(path,[.options])
//首先是引入
const path=require('path')
const fs=require('fs')
let spath=path.join(__dirname,'../0301','file.zip')
let dpath=path.join("C:\\users")
let readStream=fs.createReadStream(spath)
let writeStream=fs.createReadStream(dpath)
let num=1
readStream.om('data',(chunk)=>{
num++
writeStream.write(chunk)
})
readStream.on('end',()=>{
console.log("文件处理完成"+num+'次');
})
//pipe的作用直接把输入流和输出流
readStream.pipe(writeStream)
//综合写法
fs.createReadStream(spath).pipe(fs.createReadStream(dpath))
五、目录操作
- 创建目录:
fs.mkdir(path[,mode],callback)// 同步
fs.mkdirSync(path[,mode])
2.读取目录
//callback是两个参数err和files,files打印出来是数组形式
fs.readdir(path[,options],callback)
fs.readdirSync(path[,options],callback)