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

  • 相关阅读:
    JavaEE中Filter实现用户登录拦截
    【Tomcat】如何注册Tomcat到Window Service服务
    案例分析:项目组内踢皮球事件
    最大子序列求和问题
    《游戏脚本的设计与开发》-第一部分总结 文字脚本的功能扩展和一个游戏测试
    ajax异步请求实例
    创建用于编译和运行Java程序的批处理文件
    Codeforces Round #189 (Div. 2)
    新的研究方向
    怎样在android实现uc和墨迹天气那样的左右拖动效果
  • 原文地址:https://www.cnblogs.com/Tanqurey/p/11142593.html
Copyright © 2011-2022 走看看