node--fs

1、fs模块内置方法

1)stat

检测是文件还是目录

fs.stat(fileAddress,(err,stats)=>{

//err 出错信息

//stats.isFile() 该东西是文件吗

//stats.isDirectory() 该东西是目录吗

//返回布尔值

})

2)mkdir

创建目录

fs.mkdir(directoryName,mode,callback)

//directoryName:所创建目录的名称

//mode:目录读写权限,默认0777

//callback:回调,含参数error

fs.mkdir('css',(err)=>{...})

不可建立同名目录

3)writeFile

写入文件

fs.writeFile(...)

参数列表:

不存在自动创建,同名自动覆盖

4)appendFile

追加文件内容

参数同3)相同

若不存在直接创建,若已存在直接在相应文件内容中追加

5)readFile

读取文件

参数列表 3)中除了data外

fs.readFile(path,callback(err,data))

返回Buffer格式,通过toString方法来转换为字符串

6)readdir

读取目录

参数列表 3)中除了data外

fs.readdir(path,callback(err,data))

读取文件下的所有目录和文件

7)rename

重命名或剪切文件

fs.rename(path,samePathWithNewName,callback(err))

剪切文件并放到指定目录:

fs.rename(path,differentPath,callback(err))

8)

删除目录

fs.rmdir()

fs.rmdir(path,cb(err))

不可以删文件

9)unlink
删除文件

fs.unlink(path,cb(err))

//注意:文件的读取等是异步操作

10)createReadStream

以文件流的方式读取数据

这种方式是分块读取的

// node通过文件流的方式读取数据

const fs = require('fs')

let str = '' // 用于保存数据

//创建读取对象,参数是文件路径
const readStream = fs.createReadStream('a.txt')

//每完成一块数据的读取,广播一个data事件,readStream通过on接收
//文件过大时读取多次
readStream.on('data', (chunk) => {
    str += chunk
})

//读取完毕。广播一个end事件,通过on接收
readStream.on('end', () => {
    console.log(str)
})

//读取失败。广播一个error事件,通过on接收
readStream.on('error', (err) => {
    console.log(err)
})

//通过流的方式读取不会卡死

11)通过createWriteStream

通过文件流的方式写入数据,

不追加直接覆盖

// 通过文件流的方式写入数据

const fs = require('fs')
const data = '这是一段数据2'

const writeStream = fs.createWriteStream('b.txt')

writeStream.write(data, 'utf8')

// 标记写入完成,这样才能触发广播finish事件
writeStream.end()

writeStream.on('finish', () => {
    console.log('finished')
})

writeStream.on('error', (err) => {
    console.log('error occur!' + err)
})

2、管道流

上面的读取流和写入流可以通过pipe方法像倒水一样进行复制转移

猜你喜欢

转载自www.cnblogs.com/Tanqurey/p/11142593.html