12.文件系统fs

文件系统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>
一般来说,除非必要,否则不要使用这种方式读取文件,因为它要求你手动管理缓冲区和文件指针,尤其是在你不知道文件大小的时候,这将会是一件很麻烦的事情。
时间: 2024-11-13 09:32:52

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

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

p.p1 { margin: 0.0px 0.0px 10.0px 0.0px; text-align: center; line-height: 11.0px; font: 14.0px "PingFang SC Semibold"; color: #000000 } p.p2 { margin: 0.0px 0.0px 10.0px 0.0px; text-indent: 36.0px; line-height: 11.0px; font: 9.0px "PingFang

nodejs 文件系统(fs) 删除文件夹 及 子文件夹下的所有内容

http://blog.163.com/hule_sky/blog/static/2091622452015112821829773/ node 文件系统fs 为我们提供了一些方法 进行文件和文件夹的读写删除等操作 下边将介绍删除文件夹及子文件夹下的所有内容的相关命令(均含有同步和异步方法) 1. fs.stat && fs.statSync 提供了访问文件的属性信息 2. fs.readdir && fs.readdirSync 提供读取文件目录信息 3. fs.unli

12.文件系统——磁盘管理之RAID概述

一.什么是RAID 从上个世纪80年代起,主流的硬盘接口主要有两类: A.IDE:用于桌面系统 B.SCSI:用于工业系统(因为转速高,平均巡道时间短,性能较IDE好) SCSI的性能虽然优于IDE,但其成本约是IDE的五倍以上,故无法广泛应用.人们为了节省成本的同时保持性能,于是设计出了一种方案,即将很多廉价的IDE设备联合起来,当做一块硬盘使用.这种将多块廉价IDE设备并行联合使用的模式就是RAID--廉价冗余磁盘阵列(Redundent Array ofInexpensive Disk).

Node.js 文件系统fs模块

Node.js 文件系统封装在 fs 模块是中,它提供了文件的读取.写入.更名.删除.遍历目录.链接等POSIX 文件系统操作. 与其他模块不同的是,fs 模块中所有的操作都提供了异步的和 同步的两个版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync().我们以几个函数为代表,介绍 fs 常用的功能,并列出 fs 所有函数 的定义和功能. 一.fs 模块函数表 二.fs 部分API fs.readFile Node.js读取文件函数语法如下

文件系统(fs模块)

一.打开和关闭文件 //在不同的操作系统中表现有所不同 var fd=fs.open(path,flags,[mode],callback) //返回一个整型  表示打开的文件对象 fs.close(fd,callback) 附:flags参数表,表示打开文件的模式 'r' - Open file for reading. An exception occurs if the file does not exist. 'r+' - Open file for reading and writin

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

//写入文件 var data = "hello world"; fs.writeFile('c:\\a.txt', data, 'ascii', function(err) { if (err) { console.log('写入文件失败'); } else { console.log('保存成功, 赶紧去看看乱码吧'); } }); //读取文件 fs.readFile('c:\\a.txt', 'ascii', function(err, data) { if (err) { c

Node.js v0.12.0API手册--文件系统

File System Stability: 3 - Stable 文件系统模块是一个简单包装的标准 POSIX 文件 I/O 操作方法集.您可以通过调用require('fs')来获取该模块.文件系统模块中的所有方法均有异步和同步版本. 文件系统模块中的异步方法需要一个完成时的回调函数作为最后一个传入形参. 回调函数的构成由您调用的异步方法所决定,通常情况下回调函数的第一个形参为返回的错误信息. 如果异步操作执行正确并返回,该错误形参则为 null或者undefined. 如果您使用的是同步版

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

文件系统(File System): 在Node中,文件系统的交互是非常重要的,服务器的本质就是将本地的文件发送给客户端, Node通过fs模块来和文件系统进行交互,该模块提供了一些标准的文件访问API类打开.读取.写入文件.以及与其交互. 要是用fs模块,首先要从核心模块中加载: 使用 const fs= require('fs') ; 来引入 fs使用特点: fs模块中的所有操作都有两种形式可供选择同步和异步, 同步文件系统会阻塞程序的执行,也就是除非操作完毕,否则不会向下执行代码. 异步文

hadoop系列二:HDFS文件系统的命令及JAVA客户端API

转载请在页首明显处注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/6391518.html 一:说明 此为大数据系列的一些博文,有空的话会陆续更新,包含大数据的一些内容,如hadoop,spark,storm,机器学习等. 当前使用的hadoop版本为2.6.4 上一篇:hadoop系列一:hadoop集群安装 二:HDFS的shell命令 上一章说完了安装HADOOP集群部分,这一张讲HDFS. 其实基本上操作都是通过JAVA API来操作,所以这里的s