zoukankan      html  css  js  c++  java
  • 读书笔记《七天学会NodeJS》(1)

    0. fs模块文件读写
        
        一般操作:
            fs.open打开文件
            fs.read读文件
            fs.write写文件
            fs.fsync刷新内存缓存以写入文件(类似于C/C++语言的flush)
            fs.close关闭文件
        
        文件读写:
            fs.writeFile
            fs.writeFileSync(同步)
            fs.readFile
            fs.readFileSync(同步)
            
        通过pipe管道读写数据流,用于大文件:
            fs.createReadStream
            fs.createWriteStream
        
        追加数据文件:
            fs.appendFile
        
        目录操作:
            fs.mkdir创建目录
            fs.readdir读目录
            
        其他操作:
            fs.stat/fs.lstat查看文件、目录信息
            fs.exists查看文件或目录是否存在
            fs.utimes访问修改时间
            fs.chmod/fs.chown权限操作
            fs.rename重命名目录或文件
            fs.rmdir移除空目录
            fs.watchFile/fs.unwatchFile监视文件
    
        (fs的很多API都通过回调函数传递结果,此外很多版本都有Sync结尾的同步版本API):
        
    1. Buffer数据块
        类似js的字符串,不过可存储二进制数据,且不同于字符串,其可读写。
        除了读取文件得到Buffer的实例外,也可以直接new构造。
        .......
    
    2. Stream数据流
        通过fs.createReadStream、fs.createWriteStream处理大文件数据,以一边读取一边处理(基于事件机制);
        灵活运用pause暂停读取、写入以及resume唤醒以继续读取或写入,可防止读写缓冲区爆仓。
        事实上Stream的pipe方法已实现以上防止缓冲区爆仓的问题。
        ......
        
    3. path路径
        path内置模块,提供文件路径相关操作
        path.normalize标准化路径
        path.join拼接路径,转为标准化后的路径
        path.extname获取文件扩展名
        ......
        
    4. 文本编码
        UTF-8编码可能带有BOM,JS读取文件或者合并操作时若存在BOM,则一般需要跳过BOM头,BOM字符如:UTF16BE:0xFEFF, UTF16LE: OXFFFE, UTF8:0xEFBBBF;
        根据文本文件头前几个字节等来判断文件是否包含BOM,以及使用的哪种Unicode编码。
        GBK编码需借助第三方包iconv-lite来转化GBK为UTF8
        内置的binary编码,可实现类似单字节编码,统一使用单字节编码来读取文件,不用关心文件的实际编码是GBK还是UTF8。
  • 相关阅读:
    catboost原理以及Python代码
    lightgbm原理以及Python代码
    stacking算法原理及代码
    python自动化之爬虫模拟登录
    python自动化之爬虫原理及简单案例
    python自动化之PDF
    input type="file"鼠标无法变小手
    typescript中类和接口的区别
    TypeScript基础类型
    微信小程序-获取input值的两种方法
  • 原文地址:https://www.cnblogs.com/haomiao/p/11650437.html
Copyright © 2011-2022 走看看