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方法像倒水一样进行复制转移

最新文章

  1. mongodb 分组查询
  2. easyui-datagrid 的loader属性用法
  3. java.util.Date转java.sql.Date丢失时间问题
  4. PHPstrom 增加emmet插件
  5. UVa 11063 - B2-Sequence
  6. key转成pvf
  7. iOS开发多线程-多线程技术1
  8. 哈希长度扩展攻击的简介以及HashPump安装使用方法
  9. 栏目class导航
  10. vue项目中遇到的问题
  11. AI pytorch
  12. 通过批处理进行Windows服务的安装/卸载&启动/停止
  13. android 开发 框架系列 使用 FileDownloader 实现检查更新的功能class
  14. pymongo的用法
  15. java 客户端调用 go grpc服务端问题总结
  16. MVC 中url-pattern配置为"/"和"/*"的区别
  17. Spring Boot 笔记之 MVC 分层结构
  18. 2018.11.30 bzoj3230: 相似子串(后缀数组)
  19. C/C++中内联(inline)函数的优点和缺点
  20. 各个层次的gcc警告

热门文章

  1. redis day02 下
  2. 三十二、http与www服务介绍
  3. day09-正侧表达式
  4. 创想变现:斯坦福设计创新课堂ME310分享(下篇)
  5. 结构体struct,类class
  6. 年度Java技术盘点,懂这些技术的程序员2019发展大好
  7. 让一个div拖动和让一个panel拖动加拉大拉小
  8. mapreduce.shuffle set in yarn.nodemanager.aux-services is invalid
  9. RNA sequence单分子直测技术
  10. HDU-6312-Game