文件系统fs ==> 提供文件的读取, 写入, 更名, 删除, 遍历目录, 链接等POSIX文件系统操作

1.fs.readFile(filename, [encoding], [callback(err, data)]) ==> 最简单的读取文件的函数

第一个参数filename ==> 表示要读取的文件名
第二个参数encoding(可选) ==> 表示文件的字符编码
callback是回调函数, 用于接收文件的内容, 如果不指定encoding,则callback就是第二个参数.
回调函数提供两个参数err和data, err表示有没有错误发生, data是文件的内容

异步的方式读取一个文件 readfile.js 

var fs = require("fs");
fs.readFile("fidle.txt", "utf-8", function(err, data){
if(err){
console.error(err);
}else{
console.log(data);
}
console.log("end");
})

2.fs.readFileSync ==> 是同步的版本, 参数与fs.readFile相同

3.fs.open(path, flags, [mode], [callback(err, fd)]) ==> POSIX open函数的封装, 接受2个必选参数

第一个参数path ==> 为文件的路径
第二个参数flags ==> 可以是以下值
1 r ==> 以读取模式打开文件
2 r+ ==> 以读写模式打开文件
3 w ==> 以写入模式打开文件, 如果文件不存在则创建
4 a ==> 以追加模式打开文件, 如果文件不存在则创建
5 a+ ==> 以读取追加模式打开文件, 如果文件不存在则创建
第三个参数mode ==> 用于创建文件时给文件指定权限, 默认是0666
例如0754表示文件所有者的权限是7(读、写、执行),
同组的用户权限是 5(读、执行),其他用户的权限是 4 (读),写成字符表示就是 -rwxr-xr-- 。

4.fs.read(fd, buffer, offset, length, position, [callback(err, bytesRead, buffer)])

相比 fs.readFile 提供了更底层的接口。fs.read 的功能是从指定的文件描述符 

1 fd 中读取数据并写入
2 buffer 指向的缓冲区对象。
3 offset 是 buffer 的写入偏移量。
4 length 是要从文件中读取的字节数。
5 position 是文件读取的起始位置,如果 position 的值为 null,则会从当前文件指针的位置读取。回调函数传递
6.bytesRead 和 buffer,分别表示读取的字节数和缓冲区对象。

以下是一个使用  fs.open  和  fs.read  的示例。 

var  fs = require('fs');
fs.open('content.txt', 'r', function (err, fd) {
if (err) {
console.error(err);
return ;
} var buf = new Buffer( 8 );
fs.read(fd, buf, 0 , 8 , null, function (err, bytesRead, buffer) {
if (err) {
console.error(err);
return ;
} console.log('bytesRead: ' + bytesRead);
console.log(buffer);
})
});
运行结果则是:
bytesRead: 8
<Buffer 54 65 78 74 20 e6 96 87>
一般来说,除非必要,否则不要使用这种方式读取文件,因为它要求你手动管理缓冲区和文件指针,尤其是在你不知道文件大小的时候,这将会是一件很麻烦的事情。

12.文件系统fs的更多相关文章

  1. node基础学习——操作文件系统fs

    操作文件系统fs 1.在Node.js中,使用fs模块来实现所有有关文件及目录的创建.写入及删除.在fs模块中,所有对文件及目录的操作都可以使用同步与异步两种方法,具有Sync后缀的方法均为同步方法. ...

  2. Node.js_文件系统 FS

    文件系统 FS——File System 所谓的文件系统,就是对计算机中的文件进行增.删.查.改等操作 是一个服务器的基础 node 通过核心 FS 模块来操作文件系统 简单写 // 1. 导入 fs ...

  3. Node.js 文件系统fs模块

    Node.js 文件系统封装在 fs 模块是中,它提供了文件的读取.写入.更名.删除.遍历目录.链接等POSIX 文件系统操作. 与其他模块不同的是,fs 模块中所有的操作都提供了异步的和 同步的两个 ...

  4. 33.Node.js 文件系统fs

    转自:http://www.runoob.com/nodejs/nodejs-module-system.html Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API. Node ...

  5. 【nodejs】 文件系统(fs) 之读写文件

    //写入文件 var data = "hello world"; fs.writeFile('c:\\a.txt', data, 'ascii', function(err) { ...

  6. Node.js学习(10)----文件系统fs

    fs 模块是文件操作的封装,它提供了文件的读取.写入.更名.删除.遍历目录.链接等 POSIX 文件系统操作.与其他模块不同的是,fs 模块中所有的操作都提供了异步的和同步的两个版本, 例如读取文件内 ...

  7. 文件系统--fs(读)--fs.read

    var fs = require('fs');var buf=new Buffer(1024);//fs.open(); //fs.open(path,flags,mode,callback);/* ...

  8. Node.js实战12:fs模块高级技巧。

    通过fs模块使用流 fs模块同样有流接口,如下例: var fs = require("fs"); var read_able = fs.createReadStream(&quo ...

  9. nodeJs文件系统(fs)与流(stream)

    一.简介 本文将介绍node.js文件系统(fs)和流(stream)的一些API已经参数使用情况. 二.目录 文件系统将介绍以下方法: 1.fs.readFile 2.fs.writeFile 3. ...

随机推荐

  1. UVA 11019 Matrix Matcher 矩阵匹配器 AC自动机 二维文本串查找二维模式串

    链接:https://vjudge.net/problem/UVA-11019lrjP218 matrix matcher #include<bits/stdc++.h> using na ...

  2. unarchive模块

    unarchive模块 用于解压文件,模块包含如下选项: copy:在解压文件之前,是否先将文件复制到远程主机,默认为yes.若为no,则要求目标主机上压缩包必须存在. creates:指定一个文件名 ...

  3. 浅谈Log4j和Log4j2的区别

    相信很多程序猿朋友对log4j都很熟悉,log4j可以说是陪伴了绝大多数的朋友开启的编程.我不知道log4j之前是用什么,至少在我的生涯中,是log4j带我开启的日志时代. log4j是Apache的 ...

  4. Spring下获取项目根路径--good

    Spring 在 org.springframework.web.util 包中提供了几个特殊用途的 Servlet 监听器,正确地使用它们可以完成一些特定需求的功能.比如某些第三方工具支持通过 ${ ...

  5. r指定位置插入一列数值

    y<-1:4 data1 <-data.frame(x1=c(1,3,5,7), x2=c(2,4,6,8),x3=c(11,12,13,14),x4=c(15,16,17,18)) da ...

  6. 探索Java语言与JVM中的Lambda表达式

    Lambda表达式是自Java SE 5引入泛型以来最重大的Java语言新特性,本文是2012年度最后一期Java Magazine中的一篇文章,它介绍了Lamdba的设计初衷,应用场景与基本语法.( ...

  7. -27979 LoadRunner 错误27979 找不到请求表单 Action.c(73): Error -27979: Requested form not found

    LoadRunner请求无法找到:在录制Web协议脚本回放脚本的过程中,会出现请求无法找到的现象,而导致脚本运行停止. 错误现象:Action.c(41): Error -27979: Request ...

  8. 关于在Android中访问和使用到上下文变量

    在监听器内部实现类中要引用上下文变量this的时候 一.采用类名.this的方法 FActivity.this 二.采用全局变量当做中间变量 1.先定义一个全局变量 private Context m ...

  9. adb调试功能

    参考: http://www.cnblogs.com/meil/archive/2012/05/24/2516055.html http://www.biemmeitalia.net/blog/and ...

  10. vector push_back报错

    场景:定义了一个结构体,包含一个vector的成员变量,在给这个vTQ push_back数据的时候报错. typedef struct tag_TQInfo { int iTime; int iMa ...