zoukankan      html  css  js  c++  java
  • NodeJs基础之字节操作、路径操作和文本操作

     

    字节操作 buffer对象

    • 构造函数
      • new Buffer(size) 参数为数值,表示分配空间的长度
      • new Buffer(string,[encoding]) 参数为字符串,表示存入Buffer的数据,编码可选
      • new Buffer(array) 参数为数组,表示存入Buffer的数据
    • 静态方法
      • Buffer.isBuffer(obj) 判断是否为Buffer(静态方法直接通过类名调用)
    • 实例方法
      • buf.write(content,offset,length,encoding);
        • content 表示写入Buffer的内容
        • offset 表示写入Buffer的起始位置
        • length 表示写入Buffer的字节数量
        • encoding 表示写入Buffer的编码设置(ascii/utf8/utf16le/ucs2/base64/binary/hex)

     

    路径操作 path对象

    引入模块 var path = require("path");

    1. path.normalize(path) 规范化路径
    2. path.basename(path[, ext]) 获取文件名称,包括扩展名
    3. path.dirname(path) 获取文件全路径,不包括扩展名
    4. path.extname(path) 只获取文件扩展名
    5. path.parse(path) 把字符串形式的文件路径转化为对象形式
    6. path.format(pathObject) 把对象形式的文件路径转化为字符串形式
    7. path.relative(from, to) 找到两个路径的相对路径
    8. path.resolve([from ...], to) 把多个路径解析完成后形成最终路径
    9. path.join([path1][, path2][, ...]) 连接路径
    10. path.sep 路径分隔符 Window"" 或 Linix"/"
          'foo\bar\baz'.split(path.sep)
          // returns ['foo', 'bar', 'baz']
      
    11. path.delimiter 环境变量分隔符,window中是“;” , Linix 系统中是“:”符号

     

    文件操作 File System 对象

    引入File System模块 var fs = require('fs')

    1.判断文件是否存在

    • fs.exists(path, callback);
      • callback(exists); exists==true 存在 , exists==false 不存在 ,

    2.查看文件的基本信息

    • fs.stat(path, callback);
      • callback(err, stats);
      • stats是信息对象,有isFile(),isDirectory()方法,和size属性

    3.打开文件

    • fs.open(path, flags[, mode], callback); callback(err , fd);
      • path:路径
      • flags:读写标志位 只读"r"、读写"r+"
      • mode:读/写/可执行 4/2/1 通常只在Linix中使用
      • callback:回调函数(第二个参数是一个数字,表示文件的句柄);

    4.读取文件

    • 异步操作
    • fs.read(fd, buffer, offset, length, position, callback);
      • fd 文件句柄
      • buffer 文件内容读取到什么地方
      • offset 从Buffer的什么位置开始读取
      • length 向Buffer中读取几个字节
      • position 表示从文件中的什么位置开始读取
      • callback 表示回调函数 callback(err, bytesRead, buffer)
        • bytesRead 读入的字节长度,相当于length
        • buffer 读入的内容
    • 同步操作,返回值为字节长度
    • var ret = fs.readSync(fd,bf,0,bf.length,0);

    5.写入文件

    • 异步操作
    • fs.write(fd, buffer, offset, length[, position], callback)
      • fd 文件句柄,操作哪个文件
      • buffer //String> | //Buffer> 要写入的内容
      • offset 从Buffer的什么位置开始写入
      • length 写几个字节的内容
      • position 表示从文件中的什么位置开始写入
      • callback 表示回调函数(err, written, buffer)
        • err表示错误信息
        • written 即写入的内容的字节长度
        • buffer 写入的内容
    • 同步操作
    • fs.writeSync(fd, buffer, offset, length[, position]); 返回值为写入的字节长度length

    6.关闭文件

    • 异步操作 fs.close(fd, callback); callback(err);
    • 同步操作 fs.closeSync(fd); 没有返回值

    7.读写文件的快捷操作

    • 读取文件 fs.readFile(file[, options], callback); callback(err , data);
      • 第一个参数要读的那个文件
      • 如果第二个参数传递编码,那么读取到的数据就是文本;
      • 如果不传递编码,那么读取到的数据是Buffer
    • 读取的同步操作,返回值为读取到的内容
      • fs.readFileSync(file[, options]);
    • 写入文件 fs.writeFile(file, data[, options], callback); callback(err);
    • 写入文件的同步操作,没有返回值
      • fs.writeFileSync(file, data[, options])

    8.文件夹操作

    • 创建文件夹
      • fs.mkdir(path[, mode], callback); callback(err);
      • 参数path 要创建的文件夹,及其路径
    • 创建文件夹的同步操作,没有返回值
      • fs.mkdirSync(path[, mode])
    • 读取文件夹
      • fs.readdir(path[, options], callback);
      • 参数path是文件夹路径
      • options 编码 //String> 默认 'utf8'
      • callback(err , files); 第二个参数是文件的集合,数组类型,包含文件和文件夹
    • 读取文件夹的同步操作,返回值是所含文件的集合,数组类型,包含文件和文件夹
      • fs.readdirSync(path[, options]);
    • 移除文件夹,只能移除空文件夹 fs.rmdir(path, callback); callback(err);
    • 移除文件夹的同步操作,没有返回值 fs.rmdirSync(path)

    9.监听文件与取消监听操作

    • 监听文件的变化
      • fs.watch(filename[, options][, listener]);
        • filename是要监听的文件名
        • listener //Function> 监听处理函数。参数(event,filename);
        • event是文件发生变化的事件,一般为rename和change
        • filename就是被监听的文件
      • fs.watchFile(filename[, options], listener);
        • options有两个属性
          • persistent //Boolean> 是否被监听
          • interval //Integer> 被监听的时间间隔,默认是5007毫秒
        • listener //Function>,参数(curr,prev);
          • curr表示文件变化之前的状态信息,prev表示文件变化之后的状态信息
    • 取消监听
      • fs.unwatchFile(filename[, listener]);
        • listener //Function>,这表示具体的函数名,可以没有,而不可以是匿名函数

    10.文件流的读写操作

    readStream.pipe(writeStream); 管道思想,简易写法

    * 流文件的读取 fs.createReadStream(path[, options])
        * path 读取的文件路径
        * options <String> | <Object> 如果是字符串,是设置文件的编码格式
        * 返回值 :返回的是读取的文件对象
    * 流文件的写入 fs.createWriteStream(path[, options])
        * path 要写入的文件路径
        * options参数含义与读取的一致
        * 返回值是写入的文件对象
    
    注意:所有的文件写入操作,如果没有相应路径的文件,相当于创建新的文件
  • 相关阅读:
    hadoop
    常用安装
    rdd相关
    spark安装
    psutil
    scala linux终端高亮显示
    【原创】正则表达式(知识点总结)
    检测对象是否有某个属性(原型链检测和对象自身检测)
    JavaScript核心(对象+原型+函数+闭包+this+上下文堆栈+作用域链)
    JavaScript ES6迭代器指南
  • 原文地址:https://www.cnblogs.com/bianhao9527/p/5886415.html
Copyright © 2011-2022 走看看