一头扎进Node(三) - File System

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 errorconsole.info(bytesRead); // 4console.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); // 4
console.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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287759.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《零基础看得懂的C语言入门教程 》——(十二)原来结构体是这么回事

一、学习目标 了解C语言的结构体的使用方法了解C语言结构体的结构的赋值了解多种C语言结构体变量的赋值方法和取值方法 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言。 第一篇:(一)脱离学习误区 第…

【学生选课系统经典】C#与SQLSERVER连接:Windows应用工程案例

实验任务描述 1 用C#访问SQLSERVER数据库(两种安全模式); 2 用C#完成数据库指定表上的数据显示; 3 用C#完成数据库指定表上的数据插入、删除和更新; 4 用C#完成数据库用户验证。 注意,由于C#语言的强大功能,下面的代码适用于SQLSERVER2000、也适合于SQLSERVER2005。区别仅…

Java精选笔记_JDBC

JDBC概述 什么是JDBC JDBC全称是Java数据库连接(Java Database Connectivity),应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等操作。是一套用于执行SQL语句的Java API。Java的数据…

mysql关系数据库引擎_MySQL数据库引擎详解

作为Java程序员,MySQL数据库大家平时应该都没少使用吧,对MySQL数据库的引擎应该也有所了解,这篇文章就让我详细的说说MySQL数据库的Innodb和MyIASM两种引擎以及其索引结构。也来巩固一下自己对这块知识的掌握。Innodb引擎Innodb引擎提供了对数…

Java之synchronized的JVM底层实现原理精简理解

1 synchronized的JVM底层原理实现的精简理解 Java 虚拟机中的synchronized基于进入和退出Monitor对象(也称为管程或监视器锁)实现, 无论是显式同步(synchronized作用在同步代码块,有明确的 monitorenter 和 monitorexit 指令) 还是…

三分钟掌握Actor和CSP模型

点击上方蓝字进行关注前文传送门:《三分钟掌握共享内存模型和 Actor模型》, 一直想比较Actor模型与golang的CSP模型,经过一段时间的实战记录了本文。Actor vs CSP模型• 传统多线程的的共享内存(ShareMemory)模型使用l…

DateTimeToUnix/UnixToDateTime 对接时间转换

问题&#xff0c;通过毫秒数来解析出时间&#xff1a;&#xff08;很多对接的时候经常需要用到&#xff09; <?php $MyJson {"jingdong_vas_subscribe_get_responce":{"code":"0","item_code":"FW_GOODS-2236-1","…

【学生选课系统经典】VB与SQLSERVER连接:Windows应用工程案例

实验任务描述 1 用VB6访问SQLSERVER数据库(两种安全模式); 2 用VB6完成数据库指定表上的数据显示; 3 用VB6完成数据库指定表上的数据插入、删除和更新; 4 用VB6完成SQLSERVER2008数据库用户验证。 一、数据库系统 该实验中,所要求的数据库名称为SCHOOL,总共涉及以下表:

丢失api-ms-win-crt-runtime-l1-1-0.dll

运行Cmder的时候提示&#xff1a;丢失api-ms-win-crt-runtime-l1-1-0.dll在网上找了一些方法&#xff0c;基本解决方法都是装VC2015的运行时&#xff0c;但是我安装的时候出错&#xff0c;大家可以先试试。接着我就去解决安装出错这问题没&#xff0c;折腾了半天也没成功。后来…

《假如编程是魔法之零基础看得懂的Python入门教程 》——(二)魔法实习生第一步了解魔杖的使用

学习目标 了解什么是开发环境了解python语言的环境安装了解python语言编程的编辑器工具 目录 第一篇&#xff1a;《假如编程是魔法之零基础看得懂的Python入门教程 》——&#xff08;一&#xff09;既然你选择了这系列教程那么我就要让你听得懂 第三篇&#xff1a;《假如编…

Java之synchronized可重入性的理解

1 synchronized可重入性的理解 当一个线程试图操作一个由其他线程持有的对象锁的临界资源时&#xff0c;将会处于阻塞状态&#xff0c;但当一个线程再次请求自己持有对象锁的临界资源时&#xff0c;如果当前锁是重入性&#xff0c;会请求将会成功&#xff0c;如果当前锁不是可…

onmouseover-onmouseout

<input type"checkbox" value"autoLogin" οnmοuseοver"block()" οnmοuseοut"none()">两周内自动登录 <div id"div1">为了您的信息安全请不要在网吧或公共电脑勾选此项</div> <script> functi…

mysql5.7 only_full_group_by_Mysql5.7及以上版本 ONLY_FULL_GROUP_BY报错的解决方法

近期在开发过程中&#xff0c;因为项目开发环境连接的mysql数据库是阿里云的数据库&#xff0c;而阿里云的数据库版本是5.6的。而测试环境的mysql是自己安装的5.7。因此在开发过程中有小伙伴不注意写了有关group by的sql语句。在开发环境中运行是正常的&#xff0c;而到了测试环…

一款高速的NET版的离线免费OCR

PaddleOCR.Onnx一款基于Paddle的OCR&#xff0c;项目使用ONNX模型&#xff0c;速度更快。本项目同时支持X64和X86的CPU上使用。本项目是一个基于PaddleOCR的C代码修改并封装的.NET的工具类库。包含文本识别、文本检测、基于文本检测结果的统计分析的表格识别功能&#xff0c;同…

spring 注解简单使用

一、通用注解 1、项目结构&#xff1a; 2、新建Person类&#xff0c;注解Component未指明id&#xff0c;则后期使用spring获取实例对象时使用默认id"person"方式获取或使用类方式获取 package hjp.spring.annotation.commen;import org.springframework.stereotype.C…

selenium+python笔记3

#!/usr/bin/env python # -*- coding: utf-8 -*- """ desc:学习unittest的用法 注意setUp/setUpClass&#xff0c;tearDown/tearDownClass的区别 ① setUp():每个测试函数运行前运行 ② tearDown():每个测试函数运行完后执行 ③ setUpClass():必须使用classmeth…

【学生选课系统经典】C#与SQLSERVER连接:ASP.NET网站(服务器端,IIS发布)

实验任务描述 1 用C#访问SQLSERVER数据库(两种安全模式); 2 用C#完成数据库指定表上的数据显示; 3 用C#完成数据库指定表上的数据插入、删除和更新; 4 用C#完成数据库用户验证。 此处使用ASP.NET工程来完成这个项目,和Windows应用不同的是:这个项目是在服务器上、依靠IIS服…

TCP包头、UDP包头、IP包头、和MAC帧包头详细字段和包头大小

1 TCP头 TCP是一种可靠的、面向连接的字节流服务,头部定义如下。 /*TCP头定义,共20个字节*/ typedef struct _TCP_HEADER {short m_sSourPort;       // 源端口号16bitshort m_sDestPort;       // 目的端口号16bitunsigned int m_uiSequNum; …

经典面试题:用户反映你开发的网站访问很慢可能会是什么原因

原文链接&#xff1a;http://blog.csdn.net/lv_victor/article/details/53148421 问题场景&#xff1a;某个用户向你反映说你开发的网站访问速度很慢&#xff0c;但是该用户访问其他问题很正常&#xff0c;分析下原因、有哪些工具分析原因、怎么解决问题&#xff1f; 最近面试两…

《假如编程是魔法之零基础看得懂的Python入门教程 》——(三)使用初始魔法跟编程魔法世界打个招呼吧

学习目标 完成显示魔法的使用——输出print完成传入魔法的使用——输入input使魔法生效——运行python文件 目录 第一篇&#xff1a;《假如编程是魔法之零基础看得懂的Python入门教程 》——&#xff08;一&#xff09;既然你选择了这系列教程那么我就要让你听得懂 第二篇&am…