zoukankan      html  css  js  c++  java
  • 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方法像倒水一样进行复制转移

  • 相关阅读:
    git基本
    openwrt 固件的uci系统
    openwrt刷固件恢复原厂固件
    openwrt 登录管理页面openwrt管理页面密码
    openwrt固件升级方法
    OpenWrt简要介绍openwrt开发
    X86 openWRT 虚拟机编译教程 在ubuntu10中X86 OpenWRT的源码编译
    无线热点认证解决方案 WifiDog
    怎么把wifidog直接编译进openwrt
    portal为什么选择开源路由器第三方固件 OpenWrt
  • 原文地址:https://www.cnblogs.com/Tanqurey/p/11142593.html
Copyright © 2011-2022 走看看