node.js中fs文件系统模块的使用方法实例详解

来源:脚本之家  责任编辑:小易  

fs.readFile(filename, [options], callback)直接用这个函

本文实例讲述了node.js中fs文件系统模块的使用方法。分享给大家供大家参考,具体如下:

首先明确一点,类似 browserify 这样的工具仅仅能将使用 commonjs 模块加载机制的

node.js中为我们提供了fs文件系统模块,实现对文件或目录的创建,修改和删除等操作。

fsAPI文档:http://nodejs.cn/api/fs

fs模块中,所有的方法分为同步和异步两种实现。

使用的方法:fs.exists(path, callback);fs.mkdir(p

有 sync 后缀的方法为同步方法,没有 sync 后缀的方法为异步方法。

nodejs的几种模块加载方式一.直接在exports对象中添加方法1. 首先创建一个模块(

一、文件的整个读取

腰间盘突出中医称为痹疾。用服中药的方法绝对有效果的!但千万不要手术,自己原配零件好!我是腰五骶一,4.5节突出,左腿疼,走不了100步。什么方法都用过。按摩,扎针,拔血罐。中药,舒筋健腰丸,丹鹿通督片,蝮蛇胶囊,电离子。过程还咨询了勾活术。小针刀。微创等。整整躺了8个月,抑郁对生活失去信心了。后来用了一个古方。再加外用涂药,爬行现在可以爬泰山了。只要大家有信心。没问题可以恢复的

const fs = require('fs'); //参数一表示读取的文件 //参数二表示读取的配置,{encoding:'null', flag:'r'} //encoding 表示编码方式 //flag 表示文件系统标志 //如果没有指定参数二中的encoding,则data返回的是一个Buffer fs.readFile('./1.txt', function (err, data) { console.log(data); }); //如果指定了,则data返回的是解析后的字符串 fs.readFile('./1.txt', {'encoding': 'utf8', 'flag': 'r'}, function (err, data) { console.log(data); });

有没有85的,今年32岁,03到08年一直在广东工厂打工,工资1000-2000元,06年结婚,同年女儿出生,09到浙江在电器商场做柜台主任干了6年,工资6000左右,去年竟然对工作没信心,辞职不干了,卖水果,现在在收废品,竟然沦落到收废品了,老家市中心有套90平房子,农村有4亩地,三间瓦房,存款15万,老婆怀二胎马上要生了,感觉人生就像游戏,不要太在意,以一个平常心对待就可以了,我们的二宝马上出生了,大家祝福我吧

或同步读取:

玩了5年的起凡,不知道有没有人知道这个游戏。当时我还是小学的时候就比较火了(我08年6年级)。初一才开始到这个游戏。那个时候全班的男生百分之50都玩起凡。每天下课就聚在一起聊游戏。什么昨天我拿了两个mvp啊,几个破敌啊。谁谁谁是名将12啊(那个时候名将12很少,就相当于英雄联盟的王者)。反正每天就聊些这个。一放学就往网吧跑,叫上几个同学打几把10v10才肯回家。我玩的最凶的时候,每天早上5点就起来学校,学校7.50上课。中途还要去网吧打几把。后面发展到每个星期都要去通宵,中考那天晚上还要出去通宵,本来我成绩是全班第一的,当然是普通班,这里真的不是吹逼。因为玩游戏入迷导致高中没考上,最后交了择校

const fs = require('fs'); let data = fs.readFileSync('./1.txt'); console.log(data); let data2 = fs.readFileSync('./1.txt', {'encoding': 'utf8'}); console.log(data2);

小米,一家改变了智能时代的公司。在前年,小米推出了小米手环,小米手环1的推出版本是有两个的,一个是普通的,定价69元。一个是光感版,定价99元。小米手环的推出,销量是火爆的。就连当时我的同学在学校不上课也在小米商城抢购小米手环!小米公司在去年也推出了小米手环的第二代,也就是小米手环2。小米手环2是只有一个版本的,定价149元。小编我当时后悔没买小米手环一代,于是小米手环2一出来就赶快去小米商城买了一个。运气不错,就抢了三天就抢到了,你们要知道,小米的饥饿营销是出了名的。买到的小米手环2外观太美了,一下就亮瞎了我的双眼。小米手环加了oled显示屏,提供了时间显示,心跳检测等等的功能。本人买的小米

二、往文件写入数据

const fs = require('fs'); //参数一表示需要写入的文件 //参数二表示写入的数据 //参数三表示写入配置 {encoding:'utf8', mode:'0o666', flag:'w'} //encoding 表示文件编码 //mode 表示文件权限 //flag 表示表示文件系统标志 fs.writeFile('./1.txt', '数据', {'mode': 0o666, 'flag': 'w'}, function (err) { console.log(err); }); //注意如果文件已存在,默认会覆盖写入 fs.writeFile('./1.txt', '你好', function (err) { console.log(err); }); //如果想追加写入,将flag设置为'a'就可以了。 fs.writeFile('./1.txt', '你好', {'flag': 'a'}, function (err) { console.log(err); });

注意,writeFile() 默认会以覆盖的方式写入数据。

或者同步写入数据:

const fs = require('fs'); fs.writeFileSync('./1.txt', '数据');

关于 mode 文件权限的说明:

在linux中文件的权限会为3种,4-表示可读,2-表示可写,1-表示可执行。它们之间的相互组合形成不同权限。

对于文件,有三个权限分配,1:文件所有者,2:文件所属组,3:其他用户。

关于 flag 文件系统标志的说明:

r 表示 读取
表示 写入
表示 同步
表示 追加
表示 文件存在就报错
表示 增加相反操作

r+ 与 w+ 区别,文件不存在时,r+ 不会创建文件,而 w+ 会创建。如果文件存在 r+ 不会清空文件,而 w+ 会清空文件。

三、往文件中追加数据

const fs = require('fs'); fs.appendFile('./1.txt', '数据', function (err) { console.log(err); }); fs.appendFileSync('./1.txt', '同步追加');

四、拷贝文件

const fs = require('fs'); //参数一表示源文件 //参数二表示目标文件 //参数三表示拷贝操作的修饰符,默认0 //参数四表示回调函数 fs.copyFile('./1.txt', './2.txt', function (err) { console.log(err); }); //同步拷贝文件 fs.copyFileSync('./1.txt', './3.txt');

五、打开文件,读取文件,写入文件

const fs = require('fs'); //参数一表示文件路径 //参数二表示文件系统标志 //参数三表示文件权限 //参数四表示回调函数,err表示错误,fd表示文件描述符,是一个整型 fs.open('./1.txt', 'r+', 0o666, function (err, fd) { //创建一个3字节的Buffer,用来接收数据 let rbuf = Buffer.alloc(3); //参数一表示文件描述符 //参数二表示接收数据的Buffer //参数三表示往Buffer中写入的偏移量 //参数四表示读取的字节数 //参数五表示从文件中读取的位置,如果为null,则是文件的当前位置读取 //参数六表示回调函数,err表示错误,bytesRead表示实际读取的字节,buffer表示接收数据的Buffer fs.read(fd, rbuf, 0, 3, 0, function (err, bytesRead, buffer) { console.log(rbuf.toString()); console.log(bytesRead); }); let wbuf = Buffer.from('中国'); //参数一表示文件描述符 //参数二表示写入数据的Buffer //参数三表示往Buffer中读取的偏移量 //参数四表示写入的字节数 //参数五表示从文件中写入的位置,如果不等于数字,则从文件的当前位置写入 //参数六表示回调函数,err表示错误,written表示实际写入的字节数,buffer表示写入数据的Buffer fs.write(fd, wbuf, 0, 3, fs.stat, function (err, written, buffer) { console.log(written); }); });

六、同步磁盘缓存,把缓冲区数据刷新到文件中。

const fs = require('fs'); fs.open('./1.txt', 'w+', 0o666, function (err, fd) { let data = Buffer.from('数据\n'); let task = []; //我们往文件中循环写入数据 for (ix = 0; ix < 1000; ix++) { task.push(function () { return new Promise((resolve, reject) => { fs.write(fd, data, 0, data.length, null, function (err, written, buffer) { if (err) { reject(err); } else { resolve(written); } }); }); }); } Promise.all(task.map(fn => fn())).then(value => { console.log(value); }, reason => { console.log(reason); }); //当们写完数据后,一般会强制刷新缓冲区,让数据写入到文件里,然后关闭文件。 //因为系统为了效率,我们写入的数据通常会放到一个缓冲区中,当缓冲区满了后,系统就一次把数据写到文件。 fs.fsync(fd, function (err) { console.log(err); //关闭文件 fs.close(fd, function (err) { console.log(err); }) }); });

七、创建目录

const fs = require('fs'); //创建目录,默认情况下不支持递归创建目录 fs.mkdir('./a', function (err) { console.log(err); }); //通过设置参数二中的recursive为true,则可以递归创建目录 fs.mkdir('./a/b/c', {'recursive': true}, function (err) { console.log(err); });

八、删除目录

const fs = require('fs'); //rmdir无法删除非空目录 fs.rmdir('./a', function (err) { console.log(err); });

九、测试文件或目录是否存在,是否可读,是否可写

const fs = require('fs'); let path = './a'; //判断是否存在 fs.access(path, fs.constants.F_OK, function (err) { console.log(err ? '不存在' : '存在'); }); //判断是否可读 fs.access(path, fs.constants.R_OK, function (err) { console.log(err ? '不可读' : '可读'); }); //判断是否可写 fs.access(path, fs.constants.W_OK, function (err) { console.log(err ? '不可写' : '可写'); });

十、读取目录下的所有文件

const fs = require('fs'); const path = require('path'); //读取目录下所有文件 fs.readdir('./a', function (err, files) { console.log(files); }); //递归的读取一个目录所有文件 function readDir(dir) { fs.stat(dir, function (err, stats) { if (stats.isDirectory()) { console.log(dir); fs.readdir(dir, function (err, files) { files.map(value => { let cur = path.join(dir, value); fs.stat(cur, function (err, stats) { if (stats.isDirectory()) { readDir(cur); } else { console.log(cur); } }); }); }); } else { console.log(dir); } }); } readDir('./node_modules');

十一、查看文件或目录的详细信息

const fs = require('fs'); //获取目录详细信息 fs.stat('./a', function (err, stats) { console.log(stats); }); //获取文件详细信息 fs.stat('./1.txt', function (err, stats) { console.log(stats); }); stats.size 表示文件大小。 stats.atime 表示文件中的数据最后访问时间。 stats.mtime 表示文件中的内容修改最后时间。 stats.ctime 表示文件权限,拥有者,所属组,链接数发生改变时的时间。 stats.birthtime 表示文件创建时间。

十二、重命名或移动文件

const fs = require('fs'); //重命名文件 fs.rename('./1.txt', './b.txt', function (err) { console.log(err); }); //移动文件 fs.rename('./2.txt', './a/b/c/2.txt', function (err) { console.log(err); });

十三、删除文件

const fs = require('fs'); //删除文件 fs.unlink('./3.txt', function (err) { console.log(err); });

十四、截取文件

const fs = require('fs'); //截取文件成3个字节 fs.truncate('./b.txt', 3, function (err) { console.log(err); });

十五、监视文件或目录的状态改变

const fs = require('fs'); //监视目录 fs.watchFile('./a', function (curr, prev) { console.log(curr); console.log(prev); if (curr.mtimeMs !== prev.mtimeMs) { console.log('内容发生的改变'); } });

希望本文所述对大家node.js程序设计有所帮助。

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

node.js中fs模块的文件操作有几种

看nodejs的官方文档,有以下内容:

File SystemBuffer API

Class: fs.FSWatcher

Event: 'change'

Event: 'error'

watcher.close()

Class: fs.ReadStream

Event: 'open'

Event: 'close'

readStream.bytesRead

readStream.path

Class: fs.Stats

Stat Time Values

Class: fs.WriteStream

Event: 'open'

Event: 'close'

writeStream.bytesWritten

writeStream.path

fs.access(path[, mode], callback)

fs.accessSync(path[, mode])

fs.appendFile(file, data[, options], callback)

fs.appendFileSync(file, data[, options])

fs.chmod(path, mode, callback)

fs.chmodSync(path, mode)

fs.chown(path, uid, gid, callback)

fs.chownSync(path, uid, gid)

fs.close(fd, callback)

fs.closeSync(fd)

fs.constants

fs.createReadStream(path[, options])

fs.createWriteStream(path[, options])

fs.exists(path, callback)

fs.existsSync(path)

fs.fchmod(fd, mode, callback)

fs.fchmodSync(fd, mode)

fs.fchown(fd, uid, gid, callback)

fs.fchownSync(fd, uid, gid)

fs.fdatasync(fd, callback)

fs.fdatasyncSync(fd)

fs.fstat(fd, callback)

fs.fstatSync(fd)

fs.fsync(fd, callback)

fs.fsyncSync(fd)

fs.ftruncate(fd, len, callback)

fs.ftruncateSync(fd, len)

fs.futimes(fd, atime, mtime, callback)

fs.futimesSync(fd, atime, mtime)

fs.lchmod(path, mode, callback)

fs.lchmodSync(path, mode)

fs.lchown(path, uid, gid, callback)

fs.lchownSync(path, uid, gid)

fs.link(srcpath, dstpath, callback)

fs.linkSync(srcpath, dstpath)

fs.lstat(path, callback)

fs.lstatSync(path)

fs.mkdir(path[, mode], callback)

fs.mkdirSync(path[, mode])

fs.mkdtemp(prefix[, options], callback)

fs.mkdtempSync(prefix[, options])

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

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

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

fs.readdir(path[, options], callback)

fs.readdirSync(path[, options])

fs.readFile(file[, options], callback)

fs.readFileSync(file[, options])

fs.readlink(path[, options], callback)

fs.readlinkSync(path[, options])

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

fs.realpath(path[, options], callback)

fs.realpathSync(path[, options])

fs.rename(oldPath, newPath, callback)

fs.renameSync(oldPath, newPath)

fs.rmdir(path, callback)

fs.rmdirSync(path)

fs.stat(path, callback)

fs.statSync(path)

fs.symlink(target, path[, type], callback)

fs.symlinkSync(target, path[, type])

fs.truncate(path, len, callback)

fs.truncateSync(path, len)

fs.unlink(path, callback)

fs.unlinkSync(path)

fs.unwatchFile(filename[, listener])

fs.utimes(path, atime, mtime, callback)

fs.utimesSync(path, atime, mtime)

fs.watch(filename[, options][, listener])

Availability

Inodes

Filename Argument

Caveats

fs.watchFile(filename[, options], listener)

fs.write(fd, buffer, offset, length[, position], callback)

fs.write(fd, data[, position[, encoding]], callback)

fs.writeFile(file, data[, options], callback)

fs.writeFileSync(file, data[, options])

fs.writeSync(fd, buffer, offset, length[, position])

fs.writeSync(fd, data[, position[, encoding]])

FS Constants

File Access Constants

File Open Constants

File Type Constants

File Mode Constants

如何使用nodejs的fs库来读写文件

下面进行fs文件系统的使用实例:

1、模块调用声明:

var fs= require('fs');

var path = require('path');

fs为文件模块,path为系统路径模块。

2、可以使用writeFile方法,将数据写入文件到某个文件夹下。

fs.writeFile(filename, data, [options], callback)

filename为具体的文件保存路径地址,

data为具体要写入文件的数据对象,

[options]为具体的保存文件配置,编码格式等,

callback为具体的回调函数,进行相应的错误捕捉及提示。

代码如下:

fs.writeFile(path.join(__dirname, 'account.js'), JSON.stringify(tempAccount), function (err) { if (err) throw err;

console.log("Export Account Success!");

});

以JSON格式将数据写入到文件路径下。

3、使用readFile方法,进行文件数据的读取。

fs.readFile(filename, [options], callback)

filename为文件路径及名称,

[options]为具体选项配置,包括数据的编码方式,

callback为回调函数,进行相应的错误处理及提示。

代码如下:

fs.readFile(path.join(__dirname, 'account.js'), function (err,bytesRead) { if (err) throw err;

console.log(bytesRead);

});

怎么使用nodejs的文件模块

nodejs的文件模块“fs”属于Node的内置模块,无需下载,可直接在js文件中引用,如下:

var fs = require("fs");

看你需要用它来做什么,使用方法参考Nodejs官网相关API:https://nodejs.org/dist/latest-v6.x/docs/api/fs.html

Node.js如何载入模块和安装模块实例详解

非常简单,require("模块名"),就可以了,

随便传授秘籍:nodejs代码,可以拿Jshman这个js加密工具加密,加密后是密文,别人就看不了你的代码了,

关于Node.js中fs模块的问题

如图,读取文件后,没有用把文件内容返回…

浏览器只拿到了response的header,没有拿到body就res.end了

追答图片中写错别字了…返回不是反回

  • 本文相关:
  • 浅谈node.js:fs文件系统模块
  • nodejs 文件系统操作模块fs使用方法详解
  • node.js中fs文件系统目录操作与文件信息操作
  • 详解nodejs文件系统(fs)与流(stream)
  • nodejs学习笔记之fs文件模块
  • 详解nodejs 文本操作模块-fs模块(一)
  • 详解nodejs 文本操作模块-fs模块(三)
  • 详解nodejs 文本操作模块-fs模块(二)
  • 详解nodejs 文本操作模块-fs模块(五)
  • 详解nodejs 文本操作模块-fs模块(四)
  • 对node通过fs模块判断文件是否是文件夹的实例讲解
  • 使用nodejs中的fs模块对文件及目录进行读写,删除,追加,等操作详解
  • nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
  • 使用nodejs+express实现简单的文件上传功能
  • nodejs爬虫抓取数据之编码问题
  • 在node.js应用中读写redis数据库的简单方法
  • 使用nvm管理不同版本的node与npm的方法
  • node.js制作简单聊天室
  • 使用node.js实现orm的一种思路详解(图文)
  • node.js处理前端提交的get请求
  • nodejs初始化init的示例代码
  • 基于nodejs+mongodb+angularjs+bootstrap开发书店案例分析
  • node.js中fs模块的文件操作有几种
  • 如何使用nodejs的fs库来读写文件
  • 怎么使用nodejs的文件模块
  • Node.js如何载入模块和安装模块实例详解
  • 关于Node.js中fs模块的问题
  • nodejs中的fs模块下,read方法的问题
  • 如何在浏览器环境中使用node的fs模块
  • 对node.js 操作文件需要加载哪个模块
  • 怎么用nodejs里面的子进程模块中创建文件夹
  • 如何加载Nodejs模块
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved