博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一头扎进Node(三) - File System
阅读量:5316 次
发布时间:2019-06-14

本文共 4783 字,大约阅读时间需要 15 分钟。

file.open:异步模式打开文件

fs.open(path, flags[, mode], callback)

案例代码如下:

var fs = require('fs');/** * 参数说明: *  1.path:要打开的文件的文件路径 *  2.flags:打开文件的方式 读/写 *      r:只读方式打开文件,如果文件不存在会抛出异常 *      r+:读写模式打开文件,如果文件不存在会抛出异常 *      rs:以同步只读的方式打开文件,如果文件不存在会抛出异常 *      rs+:以同步读写的方式打开文件,如果文件不存在会抛出异常 *      w:以写文件的模式打开文件,如果文件不存在则创建文件,如果存在则清空文件 *      wx:以写的模式打开文件,如果文件不存在则创建文件,如果存在抛出异常 *      w+:以读写文件的模式打开文件,如果文件不存在则创建文件,如果存在则清空文件 *      wx+:以读写的模式打开文件,如果文件不存在则创建文件,如果存在抛出异常 *      a:追加模式打开文件,如果不存在则创建文件 *      a+:读写和追加模式打开文件,如果不存在则创建文件 *      ax:追加模式打开文件,如果存在抛出异常 *      ax+:读写和追加模式打开文件,如果存在抛出异常 *       *  3.mode:设置文件的模式,读写执行(4-2-1) *  4.callback:打开文件的回调函数 *      function(err,fd){ *          //err:文件打开失败的错误信息,如果成功则为null *          //fd:被打开文件的标识 *      } */fs.open('test.txst','wx',function(err,fd){    console.info(err);    if(err){        console.info('文件打开失败...');    }else{        console.info('文件打开成功...');    }});

fs.openSync:同步模式打开文件

fs.openSync(path, flags[, mode])

具体参数用法请参考open方法。

案例代码如下:

var fs = require('fs');var fd =fs.openSync('test.txt', 'r');console.info(fd);

fs.read:异步读取一个打开的文件

fs.read(fd, buffer, offset, length, position, callback)

具体参数用法请参考open方法。

案例代码如下:

var fs = require('fs');fs.open('test.txt','r',function(err,fd){    if(err){        console.info('文件打开失败...');    }else{        /**         * 读取文件         *          * fs.read(fd, buffer, offset, length, position, callback)         *      1.fd:通过open方法成功打开的一个文件的返回句柄         *      2.buffer:用于存放读取内容的buffer对象         *      3.offset:新的内容添加到buffer中的起始位置         *      4.length:添加到buffer中的内容长度         *      5.position:读取的文件中的起始位置         *      6.callback:读取文件的回调函数         *          function(err, bytesRead, buffer){         *              //err:错误信息         *              //bytesRead:读取的内容在buffer中的长度         *              //buffer:buffer对象         *          }         * @type {Buffer}         */        var bf = new Buffer(10);        fs.read(fd,bf,0,4,null,function(err, bytesRead, buffer){            console.info(err); // null or some error            console.info(bytesRead); // 4            console.info(buffer); //buffer content        });            }});

fs.readSync:同步模式读取打开的文件

fs.readSync(fd, buffer, offset, length, position)

该方法以同步模式读取打开的文件,并且返回了从文件中读取的内容的长度。具体参数用法请参考read方法。

案例代码如下:

var fs = require('fs');var bf = new Buffer(10);var fd =fs.openSync('test.txt', 'r');var len = fs.readSync(fd,bf,0,4,null);console.info(len); // 4console.info(bf); // buffer content

fs.rename:异步模式对文件或者文件夹重命名

fs.rename(oldPath, newPath, callback)

对文件或者文件夹进行重命名操作

案例代码如下:

var fs = require('fs');/** * 对文件或者文件夹进行重命名操作 *  * fs.rename(oldPath, newPath, callback) * *  1.oldPath:要进行重命名的文件 *  2.newPath:要重命名的文件名称 *  3.callback:重命名的回调函数 *      function(err){ *          //err:错误信息 *      } *   */fs.rename('./srcFile.txt','./destFile.text',function(err){    console.info(err);});

注意点

  • 当源文件不存在的时候回报错
  • 当新的文件名称已存在会导致原来的那个文件丢失,不会报错!!!!

fs.renameSync:同步模式对文件或者文件夹进行重命名

fs.renameSync(oldPath, newPath)

该方法以同步模式对文件或者文件夹进行了重命名,返回值为undefined。具体参数用法请参考rename方法。

案例代码如下:

var fs = require('fs');fs.renameSync('./srcFile.txt','./destFile.text');

fs.stat:异步模式获取文件信息

fs.stat(path, callback)

该方法主要用来获取文件或者文件夹的信息,包括一些类型、时间相管的信息、文件大小等。

案例代码如下:

var fs = require('fs');fs.stat('./src',function(err,stats){    /**     *     * stats.mode:     *      On Win32:     *          16895 for a dir and 33206 for a file.     *      On Linux:     *          16877 for a dir, 33188 for a file     *               */    console.info("设备名:" + stats.dev);    console.info("类型:" + stats.mode); //33188-文件、16877-文件夹    console.info("被连接数目:" + stats.nlink);    console.info("所有者的用户id:" + stats.uid);    console.info("所有者的组id:" + stats.gid);    console.info("设备类型:" + stats.rdev);    console.info("文件系统 IO 的块大小:" + stats.blksize);    console.info("号码:" + stats.ino);    console.info("大小:" + stats.size);    console.info("所占据块的数目:" + stats.blocks);    console.info("上次访问时间:" + stats.atime);    console.info("上次修改时间:" + stats.mtime);    console.info("上次改变时间:" + stats.ctime);    console.info("创建时间:" + stats.birthtime);});

fs.statSync:同步模式获取文件信息

fs.statSync(path)

该方法以同步模式获取文件或者文件夹信息,返回一个stats对象。具体参数用法请参考stat方法。

案例代码如下:

var fs = require('fs');var stats = fs.statSync('./src');console.info("设备名:" + stats.dev);console.info("类型:" + stats.mode); //33188-文件、16877-文件夹console.info("被连接数目:" + stats.nlink);console.info("所有者的用户id:" + stats.uid);console.info("所有者的组id:" + stats.gid);console.info("设备类型:" + stats.rdev);console.info("文件系统 IO 的块大小:" + stats.blksize);console.info("号码:" + stats.ino);console.info("大小:" + stats.size);console.info("所占据块的数目:" + stats.blocks);console.info("上次访问时间:" + stats.atime);console.info("上次修改时间:" + stats.mtime);console.info("上次改变时间:" + stats.ctime);console.info("创建时间:" + stats.birthtime);

转载于:https://www.cnblogs.com/mangoniki/p/5502962.html

你可能感兴趣的文章
poj-1410 Intersection
查看>>
Java多线程基础(一)
查看>>
TCP粘包拆包问题
查看>>
SQL Server中利用正则表达式替换字符串
查看>>
POJ 1015 Jury Compromise(双塔dp)
查看>>
论三星输入法的好坏
查看>>
Linux 终端连接工具 XShell v6.0.01 企业便携版
查看>>
JS写一个简单日历
查看>>
Python 发 邮件
查看>>
mysql忘记密码的解决办法
查看>>
全面分析Java的垃圾回收机制2
查看>>
[Code Festival 2017 qual A] C: Palindromic Matrix
查看>>
修改博客园css样式
查看>>
Python3 高阶函数
查看>>
初始面向对象
查看>>
leetcode Letter Combinations of a Phone Number
查看>>
Unity 5.4 测试版本新特性---因吹丝停
查看>>
7.5 文件操作
查看>>
MyEclipse中将普通Java项目convert(转化)为Maven项目
查看>>
node js 安装.node-gyp/8.9.4 权限 无法访问
查看>>